Form form1 = new Form();
Thread newThread = new Thread(() =>
form = form1
);
newThread.Start();
while(form == null)
{
WAIT?
}
在继续执行之前,任何人都可以帮助我如何进行线程等待吗?而不是使用thread.sleep?
答案 0 :(得分:5)
您可以使用ManualResetEvent
:
var mre = new ManualResetEvent(false);
Form form1 = new Form();
Thread newThread = new Thread(() => {
form = form1;
mre.Set();
});
newThread.Start();
mre.WaitOne();
答案 1 :(得分:-1)
正如flq所提到的,你可以使用thread.join,这将允许线程完成它正在做的任何事情,你可以在那之后继续...但是,因为你正在处理一个表单应用程序,你可能会阻止它ui线程,如果你从那里加入......
你应该尝试一种不同的模式来修复它而不是阻塞...使用委托或事件来表示什么时候完成...也称为异步处理。