将消息发送到在c#/.net中的while(1)循环中运行的线程(而不是进程),最有效和最快的方法是什么:
使用同步队列的
在Linux中,我习惯于使用unix域套接字来做这件事,那么在windows中做这件事的等效方法是什么?共享内存文件?命名管道?你认为如何?
发布于 2009-12-20 20:54:54
我个人会使用生产者/消费者队列。这实际上就是WinForms消息循环,只是以一种特定于Windows Forms的方式。
请注意,如果您能够使用.NET 4.0,框架中内置的collections会使这一切变得非常简单。特别是,使用包装在ConcurrentQueue
周围的BlockingCollection
可以做您想要的事情。
我个人不会使用GeeksCafe代码-我会将生产者/消费者的本质封装到它自己的类中,这个类包装了一个队列,而不是通过扩展方法以这种方式处理任何队列。特别是,您需要各方正确地处理队列,这意味着在我看来,最好为它提供自己的API。
https://stackoverflow.com/questions/1935726
复制相似问题