C# Queue 隊(duì)列的基本使用
參考:http://www.rzrgm.cn/wjygxjz/p/17772666.html
/// <summary>
/// 線程安全隊(duì)列
/// 如果多個(gè)線程同時(shí)操作一個(gè)隊(duì)列推薦使用安全隊(duì)列,因?yàn)橛锌赡芤鹛砑雨?duì)列前數(shù)據(jù)都是正常的,當(dāng)出隊(duì)時(shí)數(shù)據(jù)是null的情況。
/// </summary>
public void ConcurrentQueueShow2()
{
// 創(chuàng)建一個(gè) ConcurrentQueue 實(shí)例
ConcurrentQueue<int> queue = new ConcurrentQueue<int>();
// 啟動(dòng)一個(gè)任務(wù)來向隊(duì)列中添加元素
Task.Run(() =>
{
for (int i = 0; i < 1000; i++)
{
queue.Enqueue(i);
Task.Delay(10).Wait(); // 延遲10ms以模擬實(shí)際操作
}
});
// 啟動(dòng)另一個(gè)任務(wù)來從隊(duì)列中取出元素
Task.Run(() =>
{
while (true)
{
int dequeue;
if (queue.TryDequeue(out dequeue))
{
Console.WriteLine("Dequeued: " + dequeue);
}
Task.Delay(10).Wait(); // 延遲10ms以模擬實(shí)際操作
}
});
// 主線程等待任務(wù)完成
Console.ReadKey();
}

浙公網(wǎng)安備 33010602011771號(hào)