private void ListenerWork() { while (true) { _threadRunning = true; _listenerCancelled = false; AsyncIO.ForceDotNet.Force(); using (var server = new PairSocket()) { server.Bind("tcp://*:" + port); while (!_listenerCancelled) { Connected = _contactWatch.ElapsedMilliseconds < ContactThreshold; byte[] frameBytes; if (!server.TryReceiveFrameBytes(out frameBytes)) { continue; } _contactWatch.Restart(); if (OnBytes != null && frameBytes != null) { OnBytes.Invoke(frameBytes); } } server.Close(); } NetMQConfig.Cleanup(); _threadRunning = false; } }