【发布时间】:2011-06-03 16:55:04
【问题描述】:
假设我有方法 void SomeMethod(动作回调) 该方法在后台线程中做一些工作,然后调用回调。问题是 - 如何阻塞当前线程直到回调被调用?
有一个例子
bool finished = false;
SomeMethod(delegate{
finished = true;
});
while(!finished)
Thread.Sleep();
但我相信应该有更好的方法
【问题讨论】:
-
如果你要阻塞当前线程直到后台线程的工作完成,你能不能只做当前线程的工作?
-
不,很遗憾我无法在当前线程中完成工作。
-
您是否考虑过将等待之后的代码放入线程中,或者使用回调/事件?您所描述的是同步操作。是否有更多信息?
-
也许当前线程也是一个GUI的主线程
标签: c# .net multithreading