簡體   English   中英

.NET線程:如何等待其他線程完成某些任務

[英].NET Threading : How to wait for other thread to finish some task

假設我有方法void SomeMethod(Action callback),此方法在后台線程中執行一些工作,然后調用回調。 問題是-如何在調用回調之前阻塞當前線程?

有一個例子

bool finished = false;
SomeMethod(delegate{
 finished = true;
});
while(!finished)
  Thread.Sleep();

但我相信應該有更好的方法

您可以使用AutoResetEvent在線程完成時發出信號。

檢查以下代碼段:

    AutoResetEvent terminateEvent = new AutoResetEvent(false);
    bool finished = false;
    SomeMethod(delegate
    {
        terminateEvent.Set();
    });
    terminateEvent.WaitOne();

檢查Thread.Join()是否有效

這個例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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