1

如何暂停我的 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) { } 
        } 
4

1 回答 1

0

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

bool CheckFile() { return someFileContainsValue }

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

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

于 2013-10-03T18:35:18.090 回答