110,534
社区成员
发帖
与我相关
我的任务
分享
void 处理数据(xxxxxx)
{
执行对xxxxx的处理;
ThreadPool.QueueUserWorkItem(h =>
{
匿名委托中可以使用处理结果数据
});
}
处理完了就不等待,异步执行后续处理。如果后续处理需要“排队”,那么你使用 lock 语法来保证后续处理过程某几条语句是互斥的(只有一个线程可以执行到其中)即可。
或者你可以使用 asycn/await 语法。
总之,这里其实扯不上什么一个死循环的“消费者线程”,你也看不到空洞的“队列”。因为系统线程池机制本身就包括了数据参数,而lock 本来就是排队!
那些比较空洞的所谓“线程、队列”的模式是15年前的 java 中的底层的介绍。在. net 中一些列封装好了的高级编程模式,不用底层写代码。