[問題] 如何暫停執行中的 function

看板C_and_CPP (C/C++)作者 (nola)時間14年前 (2012/02/14 13:50), 編輯推噓2(2011)
留言13則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) BCB 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 自定義的 C lib 問題(Question): 希望可以一邊顯示進程一邊執行 C lib 中定義的壓縮 function 餵入的資料(Input): mono.wav 預期的正確結果(Expected Output): 一邊顯示進程一邊壓縮檔案 錯誤結果(Wrong Output): 先顯示進程式窗, 執行壓縮檔案 function, 等到 function 結束才跑進程 程式碼(Code):(請善用置底文網頁, 記得排版) 不知道怎麼暫停 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.188.59

02/14 13:59, , 1F
多執行緒
02/14 13:59, 1F

02/14 14:45, , 2F
一定要兩個執行緒嗎? 只建一個跑 progressbar 是否可以?
02/14 14:45, 2F

02/14 14:58, , 3F
如果你的進程細緻度是0跟100%那可以
02/14 14:58, 3F

02/14 15:00, , 4F
感謝兩位的回答, 謝謝~
02/14 15:00, 4F

02/14 16:24, , 5F
你不另開thread,壓縮要多久,你的UI就卡住多久
02/14 16:24, 5F

02/14 16:24, , 6F
然後Windows就跟你說程式沒回應問你要不要關閉
02/14 16:24, 6F

02/14 18:29, , 7F
只要你負責壓縮檔案的函數,可以斷斷續續執行,就可以單緒
02/14 18:29, 7F

02/15 10:39, , 8F
謝謝~ 瞭解了
02/15 10:39, 8F

02/15 14:59, , 9F
壓縮函數有callback的話,設好callback在裡頭更新progress
02/15 14:59, 9F

02/15 14:59, , 10F
然後,開一個thread去跑壓縮函數
02/15 14:59, 10F

02/15 15:04, , 11F
要是壓縮函數可以一次只壓一塊block的話,就自己控制大小
02/15 15:04, 11F

02/15 15:06, , 12F
同時更新進,迴圈內要偵測是否按了取消,以便及時終止壓縮
02/15 15:06, 12F

02/15 15:07, , 13F
進度
02/15 15:07, 13F
文章代碼(AID): #1FEVOf63 (C_and_CPP)
文章代碼(AID): #1FEVOf63 (C_and_CPP)