在我的winform應用程序中,我有一個窗體用於顯示「Please wait ...」消息以及進度條或一些文本。出於性能方面的原因,表單是一個使用BringToFront(),Show()和Refresh()打開的單例,並用Hide()關閉。表單有時不會隱藏,儘管處於終止狀態
我正在使用try ... finally pattern來顯示此表單並隱藏它。
try
{
WaitForm.Display();
// Some code
}
finally
{
WaitForm.Hide();
}
在一些罕見的情況下,用戶報告表單沒有關閉。你能想到爲什麼表單不能關閉的原因嗎?用戶界面在發生這種情況時會作出響應。
您能重現該錯誤嗎?我不明白爲什麼它沒有被稱爲... – squelos 2012-03-20 09:12:10
這是所有的代碼在finally塊? 'WaitForm.Hide();'之前是否有一些代碼行? – Steve 2012-03-20 09:14:37
@squelos:finally塊中的代碼總是被調用。 'WaitForm.Hide()'不被調用的唯一方法是在語句之前有一些代碼退出'finally'塊(可能拋出異常?),或者隱藏表單導致異常本身。 – 2012-03-20 09:20:44