2013-10-03 3 views
1

Как приостановить выполнение для моего CS-Script, как подождать основной вызывающий поток.CS-Script в C#

У меня есть петля. но вторая итерация началась без завершения первой итерации. и второй 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

Является ли сценарий выполняющим асинхронную, а не синхронную работу? – Servy

ответ

0

У вас также может быть сценарий, оставляющий некоторые доказательства его завершения. Он может выводить значение в текстовый файл или просто создавать файл. Вы вызываете скрипт, затем проверяете этот индикатор, пока не найдете его (или не решите отказаться), а затем продолжите.

bool CheckFile() { return someFileContainsValue } 

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

Очевидно, что асинхронная версия будет чище, но принцип тот же.