检测线程何时关闭

时间:2013-04-05 15:42:34

标签: c#

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

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

如何编程第二个线程以检测第一个线程何时关闭,并相应地关闭它?

2 个答案:

答案 0 :(得分:0)

您可以使用第一个窗口中的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();
}

答案 1 :(得分:0)

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

建议不要从父线程关闭子线程 很可能会阻止某些资源被正确释放。