看板 C_Sharp 關於我們 聯絡資訊
問題: 當richTextBox1_TextChange改變,到richTextBox1真正的Show出來過程中 如果有另一件事件(event)搶先觸發,則會比"richTextBox1真正的Show"還搶先進行 如果是這樣,是否有辦法讓"richTextBox1真正的Show"優先處理? 測試的程式碼: public Form1() { InitializeComponent(); richTextBox1.TextChanged += new EventHandler(richTextBox1_TextChanged); } void richTextBox1_TextChanged(object sender, EventArgs e) { DateTime bbb = DateTime.Now; while (DateTime.Now.Subtract(bbb).Milliseconds <= 100) { int aaa = 0; for (int i = 0; i < 1000000; i++) { aaa = 12345 * 123; // 這裡只是要讓richTextBox1_TextChanged慢一點離開 } } } 依照這個程式,加上快速Keyin,結果會是 "快速Keyin手放開後,會看到richTextBox1繼續動,呈現Delay似的輸出" 如果有辦法能讓richTextBox1的Show的事件優先處理,則會在 "快速Keyin手放開後,richTextBox1的Show也停止" PS:不知道這樣大家看不看得懂...^^" 如果看得懂,不知道大家有甚麼意見或者能幫我解答這問題嗎?? 麻煩大家為我解答"事件優先權"的問題^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.34.213
piadoro:也許你可以試試 把事件註銷掉 原本用+=附加新事件 04/13 00:17
piadoro: 改用 -= 把已知的事件暫時註銷 04/13 00:17
horngsh:在每一個用到richTexBox1的地方用lock(objLck){rchTxtBox} 04/13 08:39