在.net中重用線程的正確方法是什麼?我知道線程池做到了,但我不知道如何。我已經有很多(100+)線程的服務器代碼工作得很好,但目前我有一個新的場景,我需要重複使用線程而不是針對同一個動作,但針對不同的線程。重複使用線程以執行不同的操作
如果我有2個方法,我該如何重用映射到方法1的線程並將其映射爲運行方法2?
僞代碼:
var thread = new Thread(method1);
do work with thread here
done, now how do i reuse the thread but tell it which method to run without creating a new one?
請注意,我不希望在如何做到這一點不使用線程的建議,我確實需要直接使用線程,無論是線程池,也沒有任務系統適合我使用案件根本(不願在這裏辯論)。我只是不確定如何幹淨地回收線程並將其映射到另一個函數以進行新的運行
這是任務的用途。直接使用任務不是線程 – MikeSW
@MikeSW「任務」是異步完成的工作單元的抽象。 'Thread'是一種創建線程異步執行工作的機制。 '任務'確實有一些內置的機制,可以使線程在機制隱藏的情況下工作,但它們並不總是足夠的。在某些情況下,您需要創建使用不同底層機制的其他工具。在這種情況下,他可能需要創建一個使用'Thread'創建'Tasks'的抽象。這並不意味着直接使用'Thread'是錯誤的。 – Servy
@MikeSW如果你直到最後讀到這個問題,你纔會明白你的評論是毫無意義的。 –