Ign*_*cia 18 .net c# multithreading mutex semaphore
我需要停止一个线程,直到另一个线程设置一个布尔值,我不想在它们之间共享一个事件.
我目前所拥有的是使用Sleep的以下代码(这是我想要更改的代码):
while (!_engine.IsReadyToStop())
{
System.Threading.Thread.Sleep(Properties.Settings.Default.IntervalForCheckingEngine);
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑澄清事:
我不拥有一个名为_engine的对象.我无法修改它,这就是为什么我不想在它们之间共享事件.我需要等到该类的方法返回true.
Tig*_*ran 12
如果您正在使用C# 4.0
,您可以使用:
Task t = Task.Factory.StartNew (() => SomeCall(..));
t.Wait();
Run Code Online (Sandbox Code Playgroud)
通过使用Task.Wait方法.
如果您有多个任务一个接一个地运行,您可以使用Task.ContinueWith:
Task t = Task.Factory.StartNew (() =>SomeCall(..)).
ContinueWith(ExecuteAfterThisTaskFinishes(...);
t.Wait();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28031 次 |
最近记录: |