2016-03-02 53 views

回答

1

一個簡單的鎖定會很好。

var synchro = new object(); 
var queue = new Queue<int>(); 
lock(synchro) 
{ 
    queue.Enqueue(123); // Add to queue 
} 
lock(synchro) 
{ 
    var num = queue.Dequeue(); // Remove from queue 
} 

或者,你可以結合使用ConcurrentQueueBlockingCollection,但它不夠靈活。例如,您不能安全地同時添加或刪除多個項目。

+1

@Neijwiert因爲*從個人經驗來看*,往往不夠。它沒有提供足夠的功能*(從.NET 4.6開始)*,如果您需要它,當您需要重寫它時,您將處於一個受到傷害的世界。更好地開始靈活。 –