从另一个线程启动新的进程,并以C#中止它

本文关键字:并以 进程 线程 另一个 启动 | 更新日期: 2023-09-27 18:28:06

如果我这样做:

new Thread(DoWork).Start();
void DoWork(){new Thread(DoMoreWork).Start();}

而我中止运行DoWork的第一个线程是DoMoreWork也会中止吗?如果没有,我如何中止sec线程(DoMoreWork)?

谢谢!

更新:

问题是,我用Microsoft.Scripting运行脚本,为此,我启动了一个新线程,该线程从Microsot.Scripting调用Execute()方法,我希望能够中止脚本。我可以中止我的线程,但我不知道Execute创建哪个线程来运行脚本。

从另一个线程启动新的进程,并以C#中止它

  1. 中止"父"线程不会停止"子"线程。

  2. 使用Thread.Artrt是个坏主意。您应该将线程设计为优雅地退出:例如,请参阅此问题的答案。

如果您将线程设计为优雅地退出(例如,当您发出事件信号时),这也将允许您杀死两个线程。

这是一个糟糕的设计。。。

你不应该这样做,因为如果第二个线程也挂起,第一个线程就不会关闭,GC也不会清理资源——死锁

线程应该并行运行,而不是在层次结构中同步。

在那里你可以找到一个很好的.net线程指南:http://www.albahari.com/threading/

相关文章: