[問題] Thread被咬住如何解決?

作者: pthuang (◢曉筱◤)   2015-07-23 19:26:37
這陣子在設計一支程式 但是遇到了一些瓶頸苦無解法
只好上來求助各位大大
以下先附上程式圖與程式碼
第一個畫面
http://i.imgur.com/HHyVH9V.png
第二個畫面原本的樣子
http://i.imgur.com/Hbg8HPs.png
第一個畫面中的「開始」被按下後第二個畫面現在的樣子
http://i.imgur.com/tOHVzMi.png
程式碼:http://ge.tt/43veWwK2/v/0
原本期待的狀況 ===============================================
在第一個畫面的開始被按下後跳轉第二個畫面
此時出現圖片與右下角的灰色OK
等待ProcessBar 1.5秒跑滿後(此處在正式的程式中會進行一些計算)
灰色OK會變成綠色的OK
現在發生的問題 ===============================================
在開始按下後正常跳轉第二畫面
但是由於已經開始大量計算1.5秒 因此圖片跟灰色OK被卡住來不及顯示
而且此時由於大量計算 ProcessBar在前半段非常卡頓
待1.5秒過後 圖片跟綠色OK才會出現
但此時ProcessBar的動畫大概也才跑完一半
等到ProcessBar整個動畫跑完已經過了大約兩秒了
想了很久 一直想不到這個問題該如何解決
請版上先進們給個方向 謝謝 m(_ _)m
作者: singledream (魚大頭)   2015-07-23 21:58:00
不要在UI thread做CPU bounding的事情。這例子一直去頻繁更新UI也是不好的例子就是了,請把耗時的時間交給背景去做,以下是更改的例子。http://ge.tt/9HD62xK2/v/0?c,有誤請見諒。

Links booklink

Contact Us: admin [ a t ] ucptt.com