防止WinForms PictureBox动画GIF在处理过程中暂停?

Bra*_*don 1 .net c# multithreading winforms

我有一个带有2个控件的表单.控件1有多个搜索条件,用户可以单击按钮开始搜索.Control 2有一个GridView,它将显示搜索结果,并且还有一个带有动画Gif的PictureBox.

控件1有一个方法,它有一个嵌套的foreach循环,需要花费5分钟才能完成(取决于搜索条件,有时它几乎立即完成).

发生的事情是我在Control 2上调用一个方法,使PictureBox可见,动画Gif开始运行.一旦foreach循环被击中需要一段时间,图像就会完全停止.每当我显示任何MessageBoxes时,图像再次开始运行(我认为这是因为MessageBox阻塞).MessageBox关闭后,图像将停止动画.

我认为我需要利用线程的东西,但我正在尝试的一切(ImageAnimator,线程调用调用Invoke的方法等)都似乎不起作用.任何提示我需要使用哪些事件/库才能使其工作?有什么好的例子可以遵循?

cod*_*nix 8

您长时间运行的代码在GUI-Thread中运行并阻止内部消息循环,因此任何GUI都会停止.尝试在单独的工作线程中运行长时间运行的代码.