求一个C#使用Queue的一个生产者多个消费者(多线程)的示例,谢谢! 50
一个生产者线程,每次读取文件一行加入到Queue里,文件读取完毕后,线程完毕。多个消费者线程,从Queue里取数据进行处理。如有Q聊最好,谢谢。...
一个生产者线程,每次读取文件一行加入到Queue里,文件读取完毕后,线程完毕。
多个消费者线程,从Queue里取数据进行处理。
如有Q聊最好,谢谢。 展开
多个消费者线程,从Queue里取数据进行处理。
如有Q聊最好,谢谢。 展开
展开全部
class queueThread
{
private object locker = new object();
private Queue queue = new Queue();
private bool isStart = false;
public void Start()
{
if (isStart) return;
isStart = true;
//生产者
var thread1 = new Thread(() => AddQueueWorker());
thread1.Start();
//消费者
var thread2 = new Thread(() => GetQueueWorker());
thread2.Start();
}
private void AddQueueWorker()
{
lock (locker)
{
var fileLine = File.OpenText(@"d:\\file.txt");
var strLine = string.Empty;
while ((strLine = fileLine.ReadLine()) != null)
{
queue.Enqueue(strLine);
}
}
}
private void GetQueueWorker()
{
while (true)
{
lock (locker)
{
if (queue.Count == 0)
break;
var obj = queue.Dequeue();
if (obj == null)
continue;
//obj 是获取的值,要做点什么?
}
}
isStart = false;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询