我在.NET 2.0中使用VB,而我正在使用在一个表单上引发事件的代码。在其后面的表单上有一个处理程序,即将有关我的对象的信息保存到XML。我需要忽略当前表单上触发的其他事件,以防止在保存时丢失数据。
有一些子程序在保存之间进行加密和解密...如果你多次单击表单上的保存或任何其他按钮,并且所有线程同时触发,则会导致问题。
在我的活动结束之前,有没有办法阻止任何事件发生?
这是一个包含许多控件的表单,因此需要一个布尔值来检查每个事件的true是否为tedius。
我尝试过使用
Do While bSaving
' Application.DoEvents()
System.Threading.Thread.Sleep(500)
Loop
但是,如果我单击“保存”两次并且bSaving仍然存在,则会陷入此循环。
我也尝试过使用frmWait.ShowDialog(),但这样可以防止代码在对话框打开时运行。