我已经连接到LostFocus
此代码,并Deactivate
事件:处理引发LostFocus和停用事件
private void Window_LostFocus(object sender, EventArgs e)
{
try
{
this.Close();
}
catch (InvalidOperationException ex) { }
}
奇怪的空白catch
造成的事实,即如果我关闭(按X
)窗口这也引发了Deactivate
甚至所以在这种情况下,我试图关闭已关闭的窗口。有没有更好的方法来处理它?
为了更清楚起见,我的方案是:我有一个窗口需要关闭lostFocus,取消激活并关闭常规X
或Alt+f4
。
它是100%有条件的种族安全解决方案吗? – zerkms 2011-05-15 00:23:55
事件处理程序被同步调用,除了这个应该只在UI线程上调用。所以除非你从后台线程向你的窗口做了一些讨厌的东西,否则这应该是线程安全的。 – ChrisWue 2011-05-15 01:12:07