C#中的队列实现

usc*_*e90 7 c# queue

我正在处理一次只能处理1个命令的硬件资源.我将通过Web界面公开它的一些API函数,所以显然很有可能一次发送超过1个命令.我已经决定在提交这些命令时排队这些命令是确保串行处理的最佳方法.

我打算在静态类中实现队列.Web应用程序代码隐藏将通过调用与其所需命令相对应的方法来添加命令.我希望调用方法等到它获得其命令的输出,因此不需要异步魔法.

  1. 我这样做了吗?有没有更好的办法?

  2. 如何在C#中开始实现队列(我通常使用Java)?我假设我需要一些事件来表示已经添加了一个作业,还有一个处理程序来启动队列的处理......

我正在使用.NET Framework 4.

Bro*_*ass 10

您可以将该ConcurrentQueue类用于实现,并具有专用线程来处理队列中的项目.

对于等待部分,您可以使用AutoResetEvent,生成器将事件实例与请求一起传递给单例类,然后调用WaitOne()哪些块直到处理器已通过调用完成信号处理Set().


Pau*_*sik 6

听起来像是一个很好的方法除了:使用Generic Queue集合类. 不要写自己的!你将重新发明一个精心打造的车轮.