[問題] RichTextBox的TextChange與真正Show結果的時間差問題

看板C_Sharp作者 (我很可愛)時間14年前 (2011/04/12 21:08), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
問題: 當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

04/13 00:17, , 1F
也許你可以試試 把事件註銷掉 原本用+=附加新事件
04/13 00:17, 1F

04/13 00:17, , 2F
改用 -= 把已知的事件暫時註銷
04/13 00:17, 2F

04/13 08:39, , 3F
在每一個用到richTexBox1的地方用lock(objLck){rchTxtBox}
04/13 08:39, 3F
文章代碼(AID): #1Df4xI4D (C_Sharp)