C#中的CS脚本

时间:2013-10-03 16:05:45

标签: c#

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

我有一个循环。但是第二次迭代在没有完成第一次迭代的情况下开始。 和第二个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) { } 
        } 

1 个答案:

答案 0 :(得分:0)

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

bool CheckFile() { return someFileContainsValue }

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

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