任何人都可以给我一个关于线程主题的开端吗?我想我知道如何做一些事情,但我需要知道如何做到以下几点:
设置一个主线程,它将一直保持活动状态,直到我发出信号停止为止(如果你想知道,它将在收到数据时终止)。然后我想要第二个线程开始,它将从文本框中捕获数据,当我发出信号时,应该退出当用户按下回车键时发生。
干杯!
答案 0 :(得分:17)
我就是这样做的......
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()”
创建线程新创建的线程将一直运行,直到满足其停止条件,然后它就会死...
您可以通过代表向“主”发出信号,告诉它何时线程已经死亡。所以您可以启动第二个......
最好通读:This MSDN Article
答案 1 :(得分:7)
Thread th = new Thread(function1);
th.Start();
th.Abort();
void function1(){
//code here
}
答案 2 :(得分:5)
在生成的线程中使用静态AutoResetEvent,使用Set()方法回调主线程。这个家伙有一个关于如何使用它的相当不错的演示。