我目前正在創建一個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