void StopRemoteProcess(bool isAsync = false) { if (process != null) { stopping = true; } AbortConnection(isAsync: isAsync); StopPinger(); if (listener != null) { listener.Stop(); listener = null; } if (connectionStream != null) { connectionStream.Close(); connectionStream = null; } if (connection != null) { connection.Close(); connection = null; } process?.Cancel(); }
IMethodReturnMessage RemoteProcessObjectShuttingDown(object obj, IMethodCallMessage msg) { ThreadPool.QueueUserWorkItem(delegate { try { process.Cancel(); } catch { } }); return(new ReturnMessage(null, null, 0, msg.LogicalCallContext, msg)); }