ProcessStartInfo.UseShellExecute = false如何在单独的线程上导致FreeImageNet的奇怪行为?

时间:2009-08-07 22:19:48

标签: .net backgroundworker freeimage

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

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

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

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

感谢您的时间。

0 个答案:

没有答案