C# 中的 CS 脚本

本文关键字:脚本 CS 中的 | 更新日期: 2023-09-27 18:33:58

如何暂停CS脚本的执行,如何等待主调用线程。

我有一个循环。但是第二次迭代在没有完成第一次迭代的情况下开始。并执行了第二个 CSSCRIPT。

foreach (var website in siteList)
        {
            try
            {
                string url = Common.GetWebSearchURL(website.ToUpper());
                string webFile = Common.GetWebSearchURL(website.ToUpper() + "_SCRIPT");
                CSScript.Evaluator.ReferenceAssembliesFromCode(webFile, true);
                ICommon script = CSScript.Evaluator.LoadFile<ICommon>(webFile);  
                script.Run(ref pnlBroswer, website, url);
            }
            catch (Exception ex) { } 
        } 

C# 中的 CS 脚本

您还可以让脚本留下一些证据来证明它已完成。它可以将值输出到文本文件,或者只是创建一个文件,等等。您调用脚本,然后检查该指示器,直到找到它(或决定放弃),然后继续。

bool CheckFile() { return someFileContainsValue }
try
{
    bool completed = false;
    executeScript(); // will update a text file when complete
    while(!completed)
    {
        completed = CheckFile();
    }
}

显然,异步版本会更干净,但原理是相同的。