public void Cleanup() { ReqMonitor.Stop(); RepMonitor.Stop(); if (!ReqThread.Join(TimeSpan.FromSeconds(1))) { ReqThread.Abort(); } if (!RepThread.Join(TimeSpan.FromSeconds(1))) { RepThread.Abort(); } ReqMonitor.Dispose(); RepMonitor.Dispose(); Req.Dispose(); Rep.Dispose(); ReqContext.Dispose(); RepContext.Dispose(); }