在编译C#脚本时提供提示

FaniX 2026/4/15 发布 · 2026/4/15 更新 · 28 次阅读

Quicker的运行C#代码步骤提供了高度自定义的逻辑处理。

C#代码初次运行前需要编译,这个过程是阻塞的,有时需要消耗较长时间;初次运行之后编译结果会被缓存,之后运行就会使用缓存的内容,无需等待编译。

这个特点使得使用C#代码的动作初次运行时会在相应步骤卡一下,有时候会影响使用体验。

目前无法获知程序集是否缓存的办法,运行前也不知道是否需要等待编译,因此无法直接向用户发出“需要等待编译”的提示。

这里提供一种在编译C#代码时提供用户提示的方案:

  1. 在C#代码主程序开头添加if(!(bool)context.GetVarValue("isSuccess")) return;,并将是否成功的结果写入isSuccess变量。
  2. 使用一个多线程步骤组包裹该步骤,并加入一个与编译并行的步骤组,内容为等待超时后判断编译是否完成(isSuccesstrue),未完成则提示正在编译的消息

一般来说,一旦编译完成,return退出的速度会很快,等待超时可以比较短(实际取决于设备)。

using System.Windows.Forms;

public static void Exec(Quicker.Public.IStepContext context)
{
    if(!(bool)context.GetVarValue("isSuccess")) return;
    MessageBox.Show("Hello world!");
}

之后再调用相同的运行C#代码步骤,由于isSuccesstrue,就会利用之前缓存的编译结果运行后面的业务逻辑。

感谢@Anlv提供的相关建议。

· {{comment.createTimeStr}}
{{reply.votePoints}}
回复   – {{reply.createTimeStr}}
回复 x
标签
目录
相关操作