假设我有方法 void SomeMethod(Action回调) 此方法在后台线程中执行一些操作,然后调用回调。问题是 - 如何在调用回调之前阻止当前线程?
有一个例子
bool finished = false;
SomeMethod(delegate{
finished = true;
});
while(!finished)
Thread.Sleep();
但我确信应该有更好的方法
答案 0 :(得分:4)
您可以使用AutoResetEvent在线程完成时发出信号。
检查此代码段:
AutoResetEvent terminateEvent = new AutoResetEvent(false);
bool finished = false;
SomeMethod(delegate
{
terminateEvent.Set();
});
terminateEvent.WaitOne();
答案 1 :(得分:1)
检查Thread.Join()
是否有效