在我的C#
应用程序中,我有一个单独的窗口,其中包含一个在单独线程中运行的进度条。它每 30 秒从服务器发送一个数据请求,并相应地填充进度条。
问题是,当我关闭主程序时,带有进度条的第二个窗口保持打开状态。
如何对第二个线程进行编程以检测第一个线程何时关闭,并相应地关闭自己?
在我的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
不建议从其父线程关闭子线程,因为这很可能会阻止某些资源被正确释放。