110,533
社区成员
发帖
与我相关
我的任务
分享
private void Delay(int t)
{
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Restart();
while (sw.ElapsedMilliseconds < t)
{
Thread.Sleep(1);
Application.DoEvents();
}
sw.Stop();
}
public void UpandDown(double offset1, double offset2, double offset3)
{
System.Threading.Thread UpDown1 = new System.Threading.Thread(() => UpDown(offset1, offset2, offset3));
UpDown1.IsBackground = true;
UpDown1.Start();
Delay(1500);//我怀疑有问题就是这个deley了,当然也有可能是上面的问题
//UpDown(offset1, offset2, offset3);
}
试验结果:
如果是主窗口线程(UI)调用,则不加doevents会不更新UI
在多线程里用,则加不加都一样(不考虑其他特殊情况),UI都能刷新