我有多個處理器對象,我使用ThreadPool在並行進程中使用它們。我要使用哪個處理器基本上取決於傳入的數據,並且可能有超過2000種不同的類型;所以只要我的應用程序運行,它會在字典中創建1-2K個處理器,並根據ThreadPool中的傳入數據運行我需要的處理器。任何進程不會超過一毫秒btw。使用ThreadPool進行對象同步
我在線程池運行的僞代碼如下:
public void onIncomingNewData(rawData)
{
if (!ThreadPool.QueueUserWorkItem(processors[rawData.Type.Id].Process, rawData))
{
Console.WriteLine("Work item cannot be queued!");
}
//Thread.Sleep(1);
}
我的問題這裏synchrnozing之處理對象;他們有他們的內部緩存,我不希望多個線程運行相同的過程對象處理方法。
此刻,我正在使用「鎖定」進程方法和一些其他處理方法調用的私有方法。但是,最好的方法是什麼?
取決於你的意思是「同步」。這種同步的目標是什麼? – Will 2010-02-05 15:02:29