【发布时间】:2019-07-21 21:24:41
【问题描述】:
我正在开发一个 c# 程序,我想等待两个任务的执行结束(在浏览器上运行 javscript 脚本,然后使用结果)以恢复主程序的执行。我必须这样做,因为程序的其余部分需要从浏览器获得的信息。我正在调用从 main 方法创建任务的方法。
我尝试简单地使用 Task 类的 waitAll() 方法,但似乎我的程序的执行并没有等待任务执行结束才能恢复。
public void method1 () {
Task t1 = browser.EvaluateScriptAsync(myScript1).ContinueWith(x =>{... }});
Task t2 = browser.EvaluateScriptAsync(myScript2).ContinueWith(x =>{...});
Task.WaitAll(t1, t2);
}
static void main (){
method1();
//code which necessisates the information brought by method1
...
}
【问题讨论】:
-
你不是
awaiting 电话。你也不应该有 async void 。这里有足够的建议你需要去了解 C# 中的await/async。
标签: c# multithreading task