对队列使用无限循环时tryDequeue
,会占用过多的 CPU。
当队列不为空时,是否可以将此操作作为用户界面通知执行?然后运行它一个事件或函数?
我得出的结论是,在我使用 ZeroMQ 库的实现中,在主要负责发布的线程中,无法避免无限循环。
using (var context = new Context(1)){
using (Socket client = context.Socket(SocketType.PUB)){
while (!StopAllThread){
SQLQueue.TryDequeue(out message);
if (message != null){
...
}
}
}