我正在阅读此博客:Use Threads Correctly ,我想知道:
如何在非 UI 线程中实现消息(注意:我指的不是 Windows 消息)?
我想要的是消息可以是对象或命令,比如说 Action<T>
/Func<T>
, ETC。
我是否必须为不同类型的消息使用单独的队列?假设一个队列用于对象,一个队列用于 Action<T>
/Func<T>
?
消息类型不同,如何实现?
编辑:
我要完成的是一个生产者/消费者模型,生产者/消费者共享队列进行通信,队列中不仅可以包含消费者消费的对象,还可以包含一些'命令'传递给消费者执行。
最佳答案
术语“消息泵”特指 Windows 中的 GUI 线程(即使它们实际上并不创建 GUI)。
听起来您可能在谈论消息队列,但即使是消息队列也不会接受操作或功能,它将接受特定类型的消息。
我当然从未听说过通过 Func<T>
到消息队列 - 结果会怎样?你要把它存放在某个地方吗?向调用者发回消息?它对我来说似乎不是很有用。
无论您尝试做什么,内置的 .NET 线程池似乎都能更好地处理它。这实际上是为异步执行代码而设计的,而不是排队和处理消息。
关于c# - 如何在 .NET 的非 UI 线程中实现消息泵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2613932/