我已经读过,如果在实际启动之前Wait()
在 a上调用Task
它,那么它TaskScheduler
可能会尝试在线程调用上内联启动任务Wait()
。这对我来说是不可取的,因为我试图保证某些操作的执行顺序,而内联调用可能会搞砸。基本上,我公开了两种对项目进行排队的方法(一种异步和一种同步)。同步方法Wait()
用于在进入另一个线程的队列并执行后等待操作结果,但现在我已将其切换为:
while(t.Status == TaskStatus.Created)
Task.Delay(10).Wait();
t.wait();
这看起来有点吓人,而且很臭,但是有没有另一种方法可以等待任务完成而不让调度程序尝试内联调度它?像这样等待似乎可行,但如果有的话,我宁愿使用另一种方法。我仅限于 Windows 运行时库。