TThread中採用TBitmap |
答題得分者是:aftcast
|
CoffeeX
中階會員 發表:18 回覆:121 積分:72 註冊:2005-02-18 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
CoffeeX
中階會員 發表:18 回覆:121 積分:72 註冊:2005-02-18 發送簡訊給我 |
不過我是在同一個thread class中產生的TBitmap 然後再由其中一個copy到另一個... critical不是要讓其他thread無法讀取這個區域的記憶體? 目前還不太清楚問題的主要原因... 因為我的兩個TBitmap都在thread中new出來的, 如果跳到主執行緒上去運作感覺好像怪怪的...(Syncronize) 或是TBitmap不適合在Thread中new?
------
=.=??? |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
===================引 用 文 章=================== 如果跳到主執行緒上去運作感覺好像怪怪的...(Syncronize) 或是TBitmap不適合在Thread中new? TBitmap在Thread中使用算是thread-safe的! 也就是說無需用Syncronize。但雖說是safe的,你還是會使用到Main Thread裡的device context (DC) 資源,為了Main Thread 和你這個自己create的Sub Thread共用 DC資源,你就需要使用Lock的機制確保二個不"干擾",尤其當你在子緒上使用到二個mainthread的dc資源時,如同你的TBitmap的copy就是這樣子。
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
CoffeeX
中階會員 發表:18 回覆:121 積分:72 註冊:2005-02-18 發送簡訊給我 |
感謝大大的指教... 我先前所寫的程式是若把bmp->assign這部份comment起來, 那麼thread就不會異常終結(沒跳出任何錯誤訊息),不過也不能確定是否和bmp拿去做後續的影像處理有關係, 但並我沒有把這張圖顯示在畫面上 後來把同個thread中有用到的bmp->canvas都Lock,感覺上就好了, 目前我把我同樣的作法教給朋友,不過還是有一定的機會會跳出錯誤(和記憶體有關),目前原因不知... 其次我想請教怎麼trace cpu,有比較好的參考資料嗎,先前一直搞不太懂跳出錯誤的那個有關cpu的視窗 TBitmap在Thread中使用算是thread-safe的! 也就是說無需用Syncronize。但雖說是safe的,你還是會使用到Main Thread裡的device context (DC) 資源,為了Main Thread 和你這個自己create的Sub Thread共用 DC資源,你就需要使用Lock的機制確保二個不"干擾",尤其當你在子緒上使用到二個mainthread的dc資源時,如同你的TBitmap的copy就是這樣子。
------
=.=??? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |