我已經連接到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