?? subject_63901.htm
字號:
<p>
序號:63901 發表者:sanyeshu 發表日期:2003-12-07 12:41:46
<br>主題:各位大俠,怎么樣才能讓我的程序停下來!
<br>內容:利用多媒體定時器,每次觸發顯示一幀圖像。這時問題出來了<BR>1.如果我把定時器的時鐘設的比較低,比如0.1秒時還好,但如果設為0.01秒或者更低,系統就像死機一樣,不在響應我的任何鼠標鍵盤動作,直到它把緩存中的圖片全部顯示完畢。我怎么才能打破這種霸道的獨占模式阿?<BR>2.我顯示圖像后,要把對話框上的一個編輯框不斷實時更新,如果時鐘設置得比較低,比如0.01秒,雖然我把updatedata(false)放在了顯示圖片函數之后,但它還是在全部圖片顯示完畢后才會更新編輯框。如果時鐘設置的比較高比如0.1秒,則沒有這回事。嘗試在顯示圖片函數后發送消息更新好像不是很有效,我該怎么做才能打破這種獨占模式阿?<BR><BR><BR>請各位高人仁者見仁,智者見智!謝謝
<br><a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p>
<hr size=1>
<blockquote><p>
回復者:bbsbbs2003 回復日期:2003-12-07 12:59:51
<br>內容:多線程
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:jackyxio 回復日期:2003-12-08 01:52:19
<br>內容:這個不叫獨占,你寫個死循環也能出現這樣的情況。。。
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:sanyeshu 回復日期:2003-12-08 03:33:34
<br>內容:多線程我也嘗試了一下,在圖像顯示后設置信號燈-----啟動輔助線程------然后在輔助線程中發送消息(因為在輔助線程中不能更新對話框,這個好像很多人都這么認為吧)給主線程-----在主線程中更新對話框。<BR><BR>但是還是不能正常顯示,只有全部圖像顯示完畢后對話框的刷新才能顯示出來,怎么才能解決這個問題呢?<BR><BR>還有,什么叫獨占啊?不太理解,請jackyxio 講解,謝謝 !
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:BigJames 回復日期:2003-12-08 13:07:23
<br>內容:在定時器的響應函數里,加上<BR>MSG msg;<BR>while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)<BR>{<BR> ::TranslateMessage(&msg);<BR> ::DispatchMessage(&msg);<BR>}<BR><BR>試試
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:jackyxio 回復日期:2003-12-08 18:03:47
<br>內容:你讓它慢一點行不行。。。只能挑一百斤的擔子,你非讓它挑二百斤。。。
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:胡濤 回復日期:2003-12-08 19:16:01
<br>內容:BigJames 的方法好像僅僅是發送了一個消息而已,和一般的postmessage沒什么區別吧。<BR><BR><BR>我倒是想讓他慢下來,讓他sleep一會,但老板不允許阿,就要以0.01秒的時間間隔顯示序<BR><BR>列圖片,同時看到國外的一個軟件就可以,郁悶。<BR><BR>誰能給我指一條明路啊,否則我就慘了。<BR>
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:BigJames 回復日期:2003-12-08 20:45:48
<br>內容:那是讓你的界面有機會更新呀!<BR>你試一下,看看效果吧。。。
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:zzjhsj 回復日期:2003-12-09 10:07:18
<br>內容:我提一種思路:<BR>1.建立繪圖線程池,在固定的定時間隔(0.01s)或繪圖點保證有一個線程開始工作,其工作環境利用內存DC,形成圖元文件或bmp;把結果存入顯示隊列<BR>2.顯示線程在固定的時間間隔利用blt進行屏幕繪制<BR>3.多媒體定時器只作為觸發器使用<BR>4.優化繪圖代碼<BR>
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:sanyeshu 回復日期:2003-12-09 23:06:32
<br>內容:zzjhsj兄,線程池美用過,不知能否再詳細一些或者提供一些源碼研究一下?
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回復者:zzjhsj 回復日期:2003-12-10 10:14:06
<br>內容:http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=61315&forum_id=<BR>這里有些東西你可能有用<BR><BR>你也可以利用完成口建立線程池
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:sanyeshu 回復日期:2003-12-11 05:10:25
<br>內容:謝謝各位,感激不盡!
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -