在一个大循环中,我改变了几个值,需要它们为updatet
。我dont want
要使用BackGroundWorker
。
是否有更便宜的方式进行更新,比如告诉应用程序paint all pending changes
?
void ExampleFunc()
{
// The original function is more complex
for (int i = 0; i < 10000; i++)
{
MyControl1.Text = NewText1(i);
MyControl2.Text = OtherNewText(i);
MyControl1.Update();
MyControl1.Update();
}
}
编辑: 为什么我需要这样做: 我通常在这种情况下使用BackGroundWorker,但在这种情况下,在某些PC上我会遇到调用问题。所以我不能在这种情况下使用它
答案 0 :(得分:1)
你说你不能使用单独的线程,你必须经常重新绘制以给用户反馈。
重新涂漆很昂贵。每10次迭代或每100ms绘制一次以减少开销。