检测线程何时已关闭

本文关键字:何时 线程 检测 | 更新日期: 2023-09-27 18:07:54

在我的C#应用程序中,我有一个单独的窗口,其中包含一个在单独线程中运行的进度条。它每隔30秒向服务器发送一个数据请求,并相应地填充进度条。

问题是,当我关闭主程序时,第二个带有进度条的窗口保持打开状态。

我如何编程第二个线程来检测第一个线程何时已关闭,并相应地关闭自己?

检测线程何时已关闭

你可以从你的第一个窗口使用Window_Closed事件:

private void Window1_Closed(object sender, EventArgs e)
{
    Window2.Close(); // Close your second window
}

然后在第二个窗口:

private void Window2_Closed(object sender, EventArgs e)
{
    // abort all Threads
    thread.Abort();
}

将工作线程设置为后台线程。http://msdn.microsoft.com/en-us/library/h339syd0.aspx

从父线程关闭子线程是不推荐的