12
我想一个函数来检查队列为新增加连续在一个线程检查队列<T>不断
显然有一个持续循环与休眠的选项,但我想少浪费的东西。
我认为某种类型的等待句柄和然后将具有队列信号,但我不能重写排队安全,因为它不是虚拟的。
现在我正考虑封装一个Queue<T>
作为我的最佳选择,但我想问问好的人,如果有更好的人!
我的想法是:我想要许多线程访问套接字连接,同时保证它们只读取其消息的响应,所以我将有一个线程分派并读取响应,然后使用响应数据执行回调(以纯文本格式)
这个实现似乎我错了。如果我叫'TryDequeue'对空队列具有有限的超时't'它会返回'默认(T)'直接,不是吗?它应该等待至少放弃之前't'。 – qerub 2014-02-10 13:22:24
TryDequeue(out T value,int timeout):timeout是一个int值,它与Monitor.Wait()所期望的值相匹配,但如果负数被指定为超时值,则Monitor.Wait()将抛出System.ArgumentOutOfRangeException。 if检查负超时的第二部分只是确保返回一个默认值而不是引发异常。 – 2017-08-30 13:47:59