public static void ThreadStopped(Thread threadToStop) { ThreadLocalServiceRequest req = threadToStop.localServiceRequest; req.tag = ThreadLocalServiceRequestTag.ThreadStopped; req.targetThread = threadToStop; ServiceThread.Request(req); }
public static void StopProcess(Process process, int exitCode) { ThreadLocalServiceRequest req = Thread.CurrentThread.localServiceRequest; req.tag = ThreadLocalServiceRequestTag.StopProcess; req.targetProcess = process; req.exitCode = exitCode; ServiceThread.Request(req); req.requestFinished.WaitOne(); process.Join(); }
public static bool ResumeProcess(Process process, bool recursive) { ThreadLocalServiceRequest req = Thread.CurrentThread.localServiceRequest; req.tag = (recursive)? (ThreadLocalServiceRequestTag.ResumeProcessRecursive): (ThreadLocalServiceRequestTag.ResumeProcess); req.targetProcess = process; ServiceThread.Request(req); req.requestFinished.WaitOne(); return(req.processStarted); }