我希望能夠知道線程或等待回調何時先完成,然後再執行代碼。這是我當前的代碼:在執行其餘代碼之前等待ThreadPool完全完成? C#.NET
foreach (var ip in iPAddresses)
{
string loopIp = ip;
WaitCallback func = delegate (object state)
{
if (PingHost(loopIp, portNumber))
{
Console.WriteLine("IP Found at: " + loopIp + ":" + portNumber);
IPAddressesAndPortNumbersList.Add(loopIp, portNumber);
}
};
ThreadPool.QueueUserWorkItem(func);
//I want the below to be executed after the thread has finished completely
Console.WriteLine("I have finished...");
}
解決方案:據我所知,你可以使用一個普通螺紋牙並執行此功能,但是,我做的工作,這將是這樣慢做到這一點。我發現這是在waitcallback函數中完成要求工作的最快方法。
爲什麼不使用'Task.Run'?這是開始使用ThreadPool的現代方式。 –
我試過了,等着慢我的任務 – Khan
你根本不需要任何線程,只是一個正確寫好的可以等待的PingHost() –