Re: [問題] sleep的問題

看板C_Sharp作者 (蛋白質)時間14年前 (2009/09/30 13:38), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《stin1128 (思思)》之銘言: : 想請教一下各位 : 我在寫一個程式 : 主要是想要讓檔名1、2、3三張圖片出現在picturebox裡面 : 但是檔名1要停留3秒,再換2停留,再換3 : 我是使用for迴圈進去執行 : 我有查到可能可以用sleep執行 : Thread.sleep(3000); : 可是他會讓整個for迴圈裡面的東西停三秒再一次執行 : 就是沒辦法先顯示圖片1,然後停留三秒再顯示圖片2 : 有想過要用timer寫,可是如果在迴圈裡面,我不會用… : 先請問各位,sleep可以滿足我的需求嗎(我有爬文,但還是不懂) : 或者用timer寫比較適合呢,謝謝 依照你的需求 使用timer會是比較好的方法 如果使用sleep程序會中止 sleep設定的時間越久 相對的程序中止時間也越久 如是想要在規則的時間來執行某些程序 使用timer是最好的方法 timer其實就是在固定的時間來中斷程式來執行其他的程序 執行完畢後會立刻跳回中斷點繼續執行 首先件立一個Form.timer 屬性 Interval 是設定多久要中斷一次 3000就是每3秒中斷一次 Enabled 就是開起或關閉 預設值是關閉 只要在程式中設定成true就會開始運作 如果不需要使用時記得要再設定回false private void timer1_Tick(object sender, EventArgs e) { //寫入每3秒想執行的程序 以你的需求就是寫更換圖片的程序 } 這樣子不但可以繼續其他動作的執行 然後每3秒又會自動換圖片 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.131.15.176

10/01 17:35, , 1F
Timer並不會中斷其他程式..他也是在UI thread上跑的東西,
10/01 17:35, 1F

10/01 17:35, , 2F
所以不會中斷其他UIThread跑的東西,當然包括所有的event
10/01 17:35, 2F

10/01 17:36, , 3F
handler.. 不然的話, 你還需要考慮到同步的問題..
10/01 17:36, 3F
文章代碼(AID): #1Amkx66f (C_Sharp)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Amkx66f (C_Sharp)