作者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
1F:→ piadoro:也许你可以试试 把事件注销掉 原本用+=附加新事件 04/13 00:17
2F:→ piadoro: 改用 -= 把已知的事件暂时注销 04/13 00:17
3F:推 horngsh:在每一个用到richTexBox1的地方用lock(objLck){rchTxtBox} 04/13 08:39