我目前正在创建一个GUI应用程序框架作为Ionite框架的一部分。我将用我的学校最后的项目, 我的问题是:使用C#:为什么我的动画线程运行得如此缓慢
林线程维护动画,
ParameterizedThreadStart iv = new ParameterizedThreadStart(o => {
this.Size = (Size)o;
});
new Thread(()=>{
float stepWidth = (targetWidth-currentWidth)/transition;
float baseWidth = currentWidth;
int tick=transition;
while(tick-- > 0){
baseWidth+=stepWidth;
Invoke(iv,new Size(baseWidth,this.Height));
Thread.Sleep(1);
}
}).Start();
假设这个操作符是一个控制对象。当我在我的控制对象上使用背景时,它比预期的更长。
我的代码/方法有什么问题? 谢谢
你不能那样做。在UI线程上使用计时器。 – SLaks 2013-05-12 16:38:06
我在上面的问题上编辑了我的代码,因此可以安全地进行跨线程操作(我认为) – 2013-05-12 16:41:26
不。从不同的线程处理UI控件永远不安全。 – SLaks 2013-05-12 16:42:58