現在、一部のExcelファイルの特定のデータ領域をイメージファイルとしてイメージフォルダにエクスポートして表示するアプリケーションを作成しています。 また、プログラムは、ファイルの表示中にすべてのファイル(これらを含む)を更新することができます。ファイルを2つのスレッドで同時に使用する
問題:
画像ファイルにExcelファイルのデータ領域をエクスポートExportRangeAsImage()メソッドは、同じクラス(ViewModelに)に実装された背景労働者、で呼ばれています。
// ExportRangeAsImage() {
...
System.Windows.Application.Current.Dispatcher.BeginInvoke(
DispatcherPriority.Normal, new System.Action(() =>
{
Bitmap image = new Bitmap(System.Windows.Forms.Clipboard.GetImage());
if (!file.Contains("XYZ"))
{
//The program stops here
image.Save(ImagePathM1 + Path.GetFileNameWithoutExtension(file) + ".svg"); Marshal.ReleaseComObject(ExcelApp);
}
}));
An unhandled exception of type 'System.Runtime.InteropServices.ExternalException' occurred in System.Drawing.dll Additional information: A generic error occurred in GDI+.**
私が表示されているファイルとファイルが持っているので、それはあると思います。それは同時に表示されている間、ファイルの更新が実行された場合 は、私は次のエラーを取得します同じ名前とプログラムは、使用中のファイルを変更したり上書きすることはできません!
この問題を解決するのに役立ちますか?
それが懸念される場合、解決策は、各スレッドで異なるファイル名を使用することです。うわー!他にどうすればあなたを助けることができますか? –
これはファイルとは関係ありません。エラーは明らかにUIについてです。 –
@PanagiotisKanavos私は[かなり確信しています](http://stackoverflow.com/questions/27438058/image-save-method-is-not-save-image-gdi-error-occured) [チャンス](http://stackoverflow.com/questions/15862810/a-generic-error-occured-in-gdi-in-bitmap-save-method)はかなり高いです(http:// stackoverflow。 [ファイルとマルチスレッド](http://stackoverflow.com/q/7694741/6682181)(http://stackoverflow.com/q/29973934/6682181)と[行う必要がある](com/q/5813633/6682181) )。もちろん、[ファイル形式](http://stackoverflow.com/q/1053052/6682181)でもかまいません。 – haindl