在C#中使用Queue類進行多線程編程,可以通過以下步驟:
Queue<string> queue = new Queue<string>();
void ProcessQueue()
{
while (true)
{
string data;
lock(queue)
{
if (queue.Count > 0)
{
data = queue.Dequeue();
}
else
{
// 隊列為空時等待
Monitor.Wait(queue);
continue;
}
}
// 處理數(shù)據(jù)
Console.WriteLine($"Processing data: {data}");
}
}
// 創(chuàng)建多個線程
Thread[] threads = new Thread[5];
for (int i = 0; i < threads.Length; i++)
{
threads[i] = new Thread(ProcessQueue);
threads[i].Start();
}
// 添加數(shù)據(jù)到隊列
lock (queue)
{
queue.Enqueue("Data 1");
Monitor.Pulse(queue); // 通知等待的線程
}
通過以上步驟,您可以在C#中使用Queue類進行多線程編程,實現(xiàn)并發(fā)處理隊列中的數(shù)據(jù)。請注意在訪問隊列時使用鎖來確保線程安全,以避免多個線程同時訪問隊列導(dǎo)致數(shù)據(jù)錯誤。