【发布时间】:2014-02-03 12:15:44
【问题描述】:
我有以下代码:
static BlockingCollection<SimpleObject> sendQueue = new BlockingCollection<SimpleObject>();
static public void Insert(string key, T value)
{
SimpleObject simpleObject = new SimpleObject {Key = key, Value = value};
sendQueue.Add(simpleObject);
var data = sendQueue.Take(); //this blocks if there are no items in the queue.
ThreadPool.QueueUserWorkItem(state =>
{
//Do ASYNC stuff with data here - threadsafe
});
}
我怎样才能写这个来使用 T 的 Task 并且仍然确保它是线程安全的和快速的?还是有更好/更快的方法?
【问题讨论】:
-
您当前的实现如何使其线程安全?
-
@mch_dk 这是真正的代码,所以你插入然后立即取出一个项目?
标签: c# performance