作者hatasum (我很可愛)
看板C_Sharp
標題[問題] RichTextBox的TextChange與真正Show結果的時間差問題
時間Tue Apr 12 21:08:31 2011
問題:
當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