c#如何让线程等待

本文关键字:线程 等待 | 更新日期: 2023-09-27 18:16:37

Form form1 = new Form();
Thread newThread = new Thread(() => 
        form = form1
);
newThread.Start();
while(form == null)
{
     WAIT? 
}

谁能帮助我如何使线程等待,然后继续执行?不要使用thread。sleep?

c#如何让线程等待

您可以使用ManualResetEvent:

var mre = new ManualResetEvent(false);
Form form1 = new Form();
Thread newThread = new Thread(() => {
        form = form1;
        mre.Set();
});
newThread.Start();
mre.WaitOne();

正如FLQ提到的,你可以使用线程。连接,这将允许线程完成它正在做的事情,你可以在那一点之后继续…然而,因为你是一个窗体应用程序工作,你可能会阻塞UI线程,如果你从那里加入…

你应该尝试不同的模式来修复这个问题,而不是阻塞…使用委托或事件来表示某事何时完成…也称为异步处理。