我的問題是: 我想用多線程TECHNIC工作 所以我用的線程池,但我要的是下面 我想確定線程池的大小,當程序被啓動 時,我有要管理的數據,我將從ThreadPool中使用一個線程來處理這個項目, ,因爲我已經閱讀過,您可以根據需要在threadPool中定義項目,但每個線程都將自動運行我想要控制線程以確定何時線程應運行 如果沒有數據線程應等待(或停止)當我有一個新的數據(這就像一個請求) 其中一個線程將運行.....謝謝使用線程池
Q
使用線程池
-1
A
回答
2
使用ThreadPool
時,您通常會使用一些(可選)輸入數據將請求排列到池中,這會導致池選擇可用線程並運行該進程。完成後,該線程返回到池中,並可用於其他請求。你通常不需要費心管理線程,但可以簡單地排隊一個工作項需要的時候:
DataToWorkWith dataItem = GetDataToWorkWith();
if (dataItem != null)
{
ThreadPool.QueueUserWorkItem(MyProcessingMethod, dataItem);
}
// somewhere else in the class
private void MyProcessingMethod(object dataItem)
{
// work with the dataItem; this will run on a threadpool thread, if
// invoked through the thread pool
}
因此,所有你需要做的是建立一些過程搞清楚,如果有數據工作將請求排列在ThreadPool
中並讓它完成工作。
0
以下是關於C# ThreadPool Usage的簡短摘要。以下是MSDN How To: Use a ThreadPool。這裏是ThreadPool
參考。
特別是,您可以使用GetAvailableThreads
獲得可用的線程。您還可以使用SetMinThreads
和SetMaxThreads
來控制線程池中的最小和最大線程數。
一般來說,我會建議不要搞亂線程的數量,除非你確切地知道你在做什麼。線程池由您和CLR組件共享,因此通過更改線程數可以影響CLR行爲。有關更多詳細信息,請閱讀ThreadPool
類文檔中的備註部分。
0
您通常不會手動管理ThreadPool中的線程。建議的用法是將代理隊列作爲Fredrik的示例,並讓ThreadPool管理線程。有了這個約定,如果沒有數據,你不應該排隊任何工作。當數據可用時,您可以排隊工作。如果您正在尋找運行後臺進程的方式,那麼在您的應用程序啓動時,您可以創建Timer
並將其添加到應用程序的狀態,或者您可以定義一個靜態類來管理Timer
,並在應用程序啓動時觸摸該類。
相關問題
- 1. 使用線程池
- 2. 使用線程池
- 3. 使用線程池的多線程
- 4. 使用jboss5線程池開始線程
- 5. 使用多線程的線程池
- 6. 使用線程池或線程
- 7. 異步使用線程池?
- 8. 使用線程池和JMS
- 9. 使用線程池適當
- 10. HostingEnvironment.QueueBackgroundWorkItem使用ASP.Net線程池或另一個線程池?
- 11. 線程池借用
- 12. 如何使升壓線程池::線程
- 13. 使用線程池得到number線程的使用
- 14. 線程池中的線程
- 15. 線程池最大線程
- 16. boost線程池
- 17. Servlet線程池
- 18. Windows線程池
- 19. 線程池:DispatchQueue.main.async
- 20. WinAPI線程池
- 21. Silverlight線程池
- 22. Python線程池
- 23. C++線程池
- 24. 線程池stucks
- 25. PHP線程池?
- 26. PHP線程池
- 27. QThread線程池
- 28. Java線程池
- 29. 線程池中線程的可用性?
- 30. 使用線程池時使用Flask應用程序(使用UWSGI)
WTF。這裏沒有問題。問題以問號(?)結尾。除此之外,這是一個漫無邊際的思想。說真的,我在這裏甚至找不到單獨的句子。投票到關閉。 – abelenky 2009-10-21 21:22:45