我有多个处理器对象,我使用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