如何暂停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) { }
}
答案 0 :(得分:0)
您还可以让脚本留下一些证据表明它已完成。它可以输出一个值到文本文件,或者只是创建一个文件,无论如何。你调用脚本,然后检查该指标,直到找到它(或决定放弃),然后继续。
bool CheckFile() { return someFileContainsValue }
try
{
bool completed = false;
executeScript(); // will update a text file when complete
while(!completed)
{
completed = CheckFile();
}
}
显然异步版本会更干净,但原理是一样的。