private void TransmitThread() { MrsTracer.ActivityID = this.traceActivityID; SettingsContextBase.RunOperationInContext(this.configContexts, delegate { for (;;) { CommonUtils.SafeWait(this.eventWakeUpTransmitter, this.mainThread); if (this.quitting) { break; } CommonUtils.CatchKnownExceptions(delegate { AsynchronousTransmitter.AsyncTransmitterWaitForReplyMessage asyncTransmitterWaitForReplyMessage = this.currentMessage as AsynchronousTransmitter.AsyncTransmitterWaitForReplyMessage; if (asyncTransmitterWaitForReplyMessage != null) { this.replyMessage = base.WrappedObject.SendMessageAndWaitForReply(asyncTransmitterWaitForReplyMessage.Request); return; } base.WrappedObject.SendMessage(this.currentMessage); }, delegate(Exception failure) { failure.PreserveExceptionStack(); this.lastFailure = failure; }); this.currentMessage = null; this.eventWakeUpTransmitter.Reset(); this.eventBufferIsAvailableToAccept.Set(); } }); }
private void ExportThread(object context) { MrsTracer.ActivityID = this.traceActivityID; Action exportOperation = (Action)context; CommonUtils.CatchKnownExceptions(delegate { this.WaitForTheNextCall(); SettingsContextBase.RunOperationInContext(this.configContexts, exportOperation); this.exportFailure = null; }, delegate(Exception ex) { ex.PreserveExceptionStack(); this.exportFailure = ex; }); this.result = DataExport.DataExportResult.Done; this.eventDataAvailable.Set(); }