1

我在 BackgroundWorker 中运行一个进程来调整图像大小。如果我UseShellExecute = false在进程的startinfo上进行设置,如果我在 UI 线程上使用FreeImageNet库进行任何同时图像操作,我会得到奇怪的行为。奇怪的行为是,当我通过CloseMultiBitmap()该方法关闭新图像时似乎可以工作,但它只留下 FICACHE 和 FISPOOL 文件,而不是最终图像。如果我设置UseShellExecute = true一切按预期工作。

backgroundworker 进程调用 ImageMagick 的 convert.exe 命令行程序。但是,如果我运行任何命令,就会发生这种情况。它确实似乎是由于 UseShellExecute 属性。我保证我不会处理来自不同线程的相同图像。

基本上,该程序加载多页 t​​iff 文件以进行拆分和合并操作。当我加载 tiff 时,每个页面都从原始页面中提取并保存在临时文件夹中。然后我使用 backgroundworker 为每个页面生成预览图像。每页大约需要半秒,因此 60 页的 tif 可能需要一些时间来加载。在加载预览图像时,您可以进行合并和拆分。我目前只对原始图像进行操作。

任何人都可以对 UseShellExecute 有所了解吗?我希望能够阅读 StandardError。我只是看不到这个属性如何影响在单独线程上运行的代码。

谢谢你的时间。

4

0 回答 0