キューに無限ループを使用すると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){
...
}
}
}