簡體   English   中英

C#如何使線程等待

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM