我有一个带有 2 个控件的表单。控件 1 有多个搜索条件,用户可以单击按钮开始搜索。 Control 2 有一个将显示搜索结果的 GridView,还有一个带有动画 Gif 的 PictureBox。
控制 1 中有一个方法,该方法有一个嵌套的 foreach 循环,需要 5 分钟以上才能完成(取决于搜索条件,有时几乎立即完成)。
发生的情况是,我调用 Control 2 上的一个方法,使 PictureBox 可见并且动画 Gif 开始运行。一旦执行了需要一段时间的 foreach 循环,图像就会完全停止。每当我显示任何消息框时,图像就会再次开始运行(我认为这是因为消息框被阻塞)。一旦消息框关闭,图像就会停止动画。
我想我需要使用一些带有线程的东西,但我正在尝试的一切(ImageAnimator、线程调用调用 Invoke 的方法等)似乎都不起作用。有什么提示我需要使用哪些事件/库才能完成这项工作吗?有什么好的例子可以借鉴吗?
长时间运行的代码在 GUI 线程中运行并阻止内部消息循环,因此任何 GUI 都会停止。尝试在单独的工作线程中运行长时间运行的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)