C# 检测线程何时关闭
在我的C应用程序中,我有一个单独的窗口,其中包含一个在单独线程中运行的进度条。它每30秒从服务器发送一个数据请求,并相应地填充进度条 问题是,当我关闭主程序时,带有进度条的第二个窗口保持打开状态C# 检测线程何时关闭,c#,C#,在我的C应用程序中,我有一个单独的窗口,其中包含一个在单独线程中运行的进度条。它每30秒从服务器发送一个数据请求,并相应地填充进度条 问题是,当我关闭主程序时,带有进度条的第二个窗口保持打开状态 如何编程第二个线程以检测第一个线程何时关闭,并相应地关闭自身?您可以从第一个窗口使用Window\u closed事件: private void Window1_Closed(object sender, EventArgs e) { Window2.Close(); // Close you
如何编程第二个线程以检测第一个线程何时关闭,并相应地关闭自身?您可以从第一个窗口使用Window\u 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();
}
使工作线程成为背景线程。 不建议从父线程关闭子线程,因为
很可能会阻止某些资源被正确释放。第二个线程是后台线程吗?如何响应关闭事件并手动终止第二个线程?关闭窗口不一定会关闭任何后台线程。@Andy谢谢。正如您所建议的,我在第一个窗体上使用了FormClosed事件,然后使用thread.Abort-它关闭了第二个窗口并中止了第二个线程。@Teifi非常感谢编辑