C#Threading – 如何启动和停止线程

任何人都可以给我一个关于线程主题的开端吗? 我想我知道如何做一些事情,但我需要知道如何做以下事情:

设置一个主线程,它将保持活动状态,直到我发出信号停止为止(如果你想知道,它会在收到数据时终止)。 然后我想要第二个线程开始,它将从文本框中捕获数据,当我发出信号时,应该退出当用户按下回车键时。

干杯!

我就这样做……

 public class ThreadA { public ThreadA(object[] args) { ... } public void Run() { while (true) { Thread.sleep(1000); // wait 1 second for something to happen. doStuff(); if(conditionToExitReceived) // what im waiting for... break; } //perform cleanup if there is any... } } 

然后在自己的线程中运行它…(我这样做是因为我也想将args发送到线程)

 private void FireThread(){ Thread thread = new Thread(new ThreadStart(this.startThread)); thread.start(); } private void (startThread){ new ThreadA(args).Run(); } 

通过调用“FireThread()”创建线程

新创建的线程将一直运行,直到满足其停止条件,然后它就会死掉……

您可以通过代表向“主”发出信号,告诉它线程何时死亡。所以您可以启动第二个……

最好通读: 这篇MSDN文章

 Thread th = new Thread(function1); th.Start(); th.Abort(); void function1(){ //code here } 

在生成的线程中使用静态AutoResetEvent使用Set()方法回调主线程。 这个家伙在如何使用它有一个相当不错的演示。

AutoResetEvent澄清