[英]c# how to make thread wait
Form form1 = new Form();
Thread newThread = new Thread(() =>
form = form1
);
newThread.Start();
while(form == null)
{
WAIT?
}
誰能幫助我如何讓線程在執行之前等待? 而不是使用thread.sleep?
您可以使用ManualResetEvent
:
var mre = new ManualResetEvent(false);
Form form1 = new Form();
Thread newThread = new Thread(() => {
form = form1;
mre.Set();
});
newThread.Start();
mre.WaitOne();
正如flq所提到的,您可以使用thread.join,這將允許線程完成其正在執行的操作,並且在此之后您可以繼續...但是,由於您正在處理表單應用程序,因此如果出現以下情況,您可能會阻塞ui線程:你從那里加入...
您應該嘗試使用另一種模式來解決此問題,而不是阻止它...使用委托或事件在完成某件事時發出信號...也稱為異步處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.