/// <summary> /// 执行工作 /// </summary> /// <param name="socket"></param> /// <returns>返回状态,其中-1会导致重连</returns> protected sealed override int DoWork(SubscriberSocket socket) { byte[] buffer; Debug.WriteLine(this.ZmqAddress); if (!socket.TryReceiveFrameBytes(timeOut, out buffer)) { //Thread.SpinWait(1); return(0); } try { var reader = new CommandReader(buffer); reader.ReadCommandFromBuffer(); var cmdMsg = reader.Command; try { var old = RpcEnvironment.SyncCacheCommand(cmdMsg); old?.OnRequestStateChanged(cmdMsg); } catch (Exception ex) { Trace.WriteLine(ex, GetType().Name + "MessageNotifyTask"); } } catch (Exception ex) { Trace.WriteLine(ex, GetType().Name + "DoWork"); return(-1); } return(0); }