作者ithinkurdumb (ithinkurdumb)
看板C_Sharp
標題Re: [問題] delegate.BeginInvoke跟control.invoke …
時間Fri Nov 23 11:12:27 2007
其實PictureBox那段沒什麼.
private void ShowProgress(Bitmap Bitmap, String StringFileName)
{
FormExtract.Text = "Extracting " + StringFileName + "...";
FormExtract.PictureBoxBitmap.Image = Bitmap
}
* * * *
神奇的事情出現了 @@
剛剛想再確認一次錯誤,
結果居然就跑完了...
※ 引述《ithinkurdumb (ithinkurdumb)》之銘言:
: 藉這個thread請教一個最近碰到的問題.
: FormMain.cs是UI,
: FileIO.cs是做file i/o (duh!) 的worker thread.
: 我在FileIO裡面使用FormMain.Invoke來call FormMain裡頭的function,
: 去變更UI的一個PictureBox.
: 我程式是在只有一個CPU的laptop上面寫的,
: 跑了很多次都沒問題.
: 但是移到SMP或Core Duo的工作站上跑的時候,
: 就會出現object is currently in use elsewhere的exception,
: PictureBox也會出現可怕的Red Cross.
: 請問一下這樣有可能的原因是什麼?
: Control.Invoke不是會強制在UI Thread執行嗎?
: 謝謝 :)
: * * *
: 補充一下,
: 如果我把變更PictureBox的function改成變更Form的Text,
: 那就一切正常.
: 搜尋一下發現好像蠻多object is...的錯誤都和Bitmap或是PictureBox有關...@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.64.17.11
推 cole945:連產生bitmap那邊的code也貼一下吧._." 11/24 21:55
→ cole945:我之前在用Multithraed寫繪圖有關的東西時也發生過一樣的 11/24 21:55
→ cole945:問題~ 不過時間有點久了..只記得跟graphic/bitmap有關@_@a 11/24 21:55