我正在运行后台线程来在Windows应用程序中移动一些配置文件数据。该线程将在某个时间间隔内运行。
如果用户在线程运行时尝试关闭表单,我应该提示用户该线程正在运行,并且不应该允许用户关闭表单。一旦它(线程)完成,那么只有我必须关闭表单。
如果我在'Form_Closing'事件中执行它,则线程停止(当我调试时)和控件 留在表格本身。关闭表单后,线程恢复..,不确定是否有任何问题。
我如何有效地处理这个问题?
答案 0 :(得分:1)
在Closing
事件中,您可以使用Cancel
属性:
private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
if (backgroundWorker1.IsBusy) {
MessageBox.Show("Thread busy!");
e.Cancel = true;
}
}
答案 1 :(得分:0)