c# – 从多个线程到一个同步线程的调度工作
假设我有10个线程忙着做某事他们有时会调用一个方法
public HandleWidgets(Widget w) { HeavyLifting(w) } 但是,我不希望我的10个线程在HeavyLifting(w)上等待,而是将HeavyLifting(w)工作分配给第11个线程,即HeavyLifter线程并以异步方式继续.调度的HeavyLifter线程应该始终是同一个线程,我不想创建多个线程(因此,我不能做这样的事情:C# Asynchronous call without EndInvoke?). HeavyLifting(w)是“发射并忘记”,因为调用HandleWidgets()的线程不需要回调或类似的东西. 这有什么健康的做法? 解决方法
基本上你有线程是工作的生产者,而一个线程是它的消费者.
创建一个线程并在循环中从
其他线程可以简单地将项添加到集合中. 请注意,BlockingCollection不保证自行添加/删除项目的顺序:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |