作者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
1F:推 cole945:连产生bitmap那边的code也贴一下吧._." 11/24 21:55
2F:→ cole945:我之前在用Multithraed写绘图有关的东西时也发生过一样的 11/24 21:55
3F:→ cole945:问题~ 不过时间有点久了..只记得跟graphic/bitmap有关@_@a 11/24 21:55