Я запускаю Процесс в BackgroundWorker для изменения размера изображений. Если я установлю UseShellExecute = false
для startinfo процесса, я получу странное поведение, если одновременно выполняю любые манипуляции с изображениями с помощью библиотеки FreeImageNet в потоке пользовательского интерфейса. Странное поведение заключается в том, что когда я иду, чтобы закрыть новое изображение с помощью CloseMultiBitmap()
, метод работает, но он оставляет только файлы FICACHE и FISPOOL, а не конечное изображение. Если я установлю UseShellExecute = true
, все будет работать как положено.
Фоновый процесс вызывает программу командной строки ImageMagick's convert.exe. Однако это происходит, если я запускаю какую-либо команду. Похоже, это действительно связано со свойством UseShellExecute. Я гарантирую, что я не работаю над одним и тем же изображением из разных тем.
По сути, программа загружает многостраничные файлы TIFF для операций разделения и слияния. Когда я загружаю tiff, каждая страница извлекается из оригинала и сохраняется во временной папке. Затем я использую backgroundworker для создания изображений предварительного просмотра для каждой страницы. Это занимает около половины секунды на страницу, поэтому загрузка 60-ти страниц может занять некоторое время. При загрузке изображений для предварительного просмотра, вы можете сделать слияние и разделение. В настоящее время я работаю только с исходным изображением.
Может кто-нибудь пролить свет на UseShellExecute? Я хотел бы иметь возможность читать StandardError. Я просто не понимаю, как это свойство может повлиять на выполнение кода в отдельном потоке.
Спасибо за ваше время.