首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向线程发送消息的最佳方式

向线程发送消息的最佳方式
EN

Stack Overflow用户
提问于 2009-12-20 20:39:14
回答 1查看 19.4K关注 0票数 16

将消息发送到在c#/.net中的while(1)循环中运行的线程(而不是进程),最有效和最快的方法是什么:

使用同步队列的

  1. (例如在)
  2. Running中,在线程上下文中使用系统winforms的Application.Run的消息循环),并且在运行application.run之前订阅一个在线程上下文中捕获消息的事件。
  3. 使用套接字或命名管道向线程发送消息。

在Linux中,我习惯于使用unix域套接字来做这件事,那么在windows中做这件事的等效方法是什么?共享内存文件?命名管道?你认为如何?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-20 20:54:54

我个人会使用生产者/消费者队列。这实际上就是WinForms消息循环,只是以一种特定于Windows Forms的方式。

请注意,如果您能够使用.NET 4.0,框架中内置的collections会使这一切变得非常简单。特别是,使用包装在ConcurrentQueue周围的BlockingCollection可以做您想要的事情。

我个人不会使用GeeksCafe代码-我会将生产者/消费者的本质封装到它自己的类中,这个类包装了一个队列,而不是通过扩展方法以这种方式处理任何队列。特别是,您需要各方正确地处理队列,这意味着在我看来,最好为它提供自己的API。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1935726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档