C# 單例多線程和線程池

//單例線程
Thread thread = new Thread(() => test());
thread.Start();

//加入線程池
ThreadPool.QueueUserWorkItem( o=> {
	//執行代碼邏輯
});

判斷線程池的內容是否全部執行完成,可以在啓動完所有的線程後,寫一個while來循環判斷處理,內容如下:

//聲明相關變量
int AvailableWorkerThreads, aiot, workNumber, aiot2;
//獲取線程池當前數量
ThreadPool.GetAvailableThreads(out AvailableWorkerThreads, out aiot);
//獲取線程池最大數量
ThreadPool.GetMaxThreads(out workNumber, out aiot2);

//判斷當前執行的線程數量是否與最大值一致,一致則所有內容執行完畢
if (workNumber - AvailableWorkerThreads == 0)
{
    //這裏是線程池所有線程執行完畢的邏輯
    //.....
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章