在关闭程序之前如何确保保存所有更改?

时间:2012-06-22 14:32:29

标签: c# multithreading forms savechanges formclosing

我在工作中有一个大型的c#项目来控制雷达干扰器。加载项目时,我们创建了3个线程,每个线程打开我们称之为“mainform”的线程(关闭其中一个主体将关闭程序。

我目前遇到的问题是,在确保所有其他表单已保存并正确关闭之前,我可以关闭其中一个主表单。这项任务的最佳方法是什么?我目前的建议是保持一个跟踪所有打开表单的全局堆栈,在关闭mainform之前,它将尝试保存并关闭堆栈中的所有表单。

1 个答案:

答案 0 :(得分:0)

如果您的功能是不再显示表单但仍可以在内部访问表单的数据,则可以使用hide()而不是立即关闭它们。

但是,您可能应该有一个类似于您所说的列表,其中包含对所有主表单的引用,并在真正删除它们之前通过它们进行迭代以保存其信息。

编辑: 您也可以始终使用OnFormClosing方法。这是更多事件驱动的方法。 http://msdn.microsoft.com/en-us/library/system.windows.forms.form.onformclosing.aspx