我有這樣的事情:IsEnabled = false; //不會 「立竿見影」
void ClickHandler() // Called from several places
{ // Try to prevent queuing accidental extra clicks during lengthy operation
GetMainWindow().IsEnabled = false; // "GetMainWindow()" you know what I mean
DoLengthyStuffInThisThread(); // Yes, I know I shouldnt
PresentResult();
GetMainWindow().IsEnabled = true;
}
,基本上就是這樣。澄清雖然:
即使我已經設置IsEnabled = false它沒有所需的效果,我的額外點擊經歷在操作過程中。 (如果我回到而不恢復的價值它不會有效果。)我認爲通常我線程需要以回報爲禁止向有效果,但我寧可不創建一個額外的線程。
由於您正在UI線程上進行處理,因此在ClickHandler完成之前UI不會更新。在完成時,該值是真實的。 – Paparazzi
從長遠來看,它會減少*爲你工作,正確地做到這一點。試圖通過做錯誤來節省時間就像走到城鎮的另一邊,因爲進入你的車是太多的工作。 – Servy
@Servy - 不了了之以後誰做它「快速和骯髒」的方式咒罵你的名字同事的說。 –