C# 线程 - 如何启动和停止线程

本文关键字:线程 启动 何启动 | 更新日期: 2023-09-27 18:34:38

谁能给我一个关于线程的话题?我想我知道如何做一些事情,但我需要知道如何做以下事情:

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

干杯!

C# 线程 - 如何启动和停止线程

这就是我的做法...

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...
    }
}

然后在它自己的线程中运行它...(我这样做是因为我也想向线程发送参数(

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

线程是通过调用"FireThread(("创建的

新创建的线程将运行,直到满足其停止条件,然后它死亡......

你可以用委托来向"main"发出信号,告诉它线程何时死亡......这样你就可以启动第二个线程了......

最好通读:这篇 MSDN 文章

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

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

自动重置事件说明