###前提・実現したいこと
非同期でOpenfileDialogを用い、ファイルパスを取得したいと思っています。
Threadを用いて非同期処理を記述したのですが、二度目以降、OutOfMemoryException
のエラーが発生しダイアログが開きません。
どなたか問題を回避する方法をご教授いただけないでしょうか。
###発生している問題・エラーメッセージ
System.OutOfMemoryException has been thrown not enought memory to complete operation [GDI + status: OutOfMemory]
###該当のソースコード
C#
1//uGuiでButtonを作成し、OnClickに紐づけ 2public void ButtonClicK(){ 3 Thread th = new Thread(GetPath); 4 th.Start(); 5} 6 7private void GetPath(){ 8 using(var dialog = new System.Windows.Forms.OpenFileDialog ()){ 9 if(dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK){ 10 Debug.Log(dialog.FileName); 11 }else 12 Debug.Log(""); 13 } 14 return; 15}
###試したこと
UniRxを用いて非同期処理を記述してみました。
こちらの場合も二度目以降の挙動がおかしく、
・ダイアログは開かれるがフォルダ、ファイルが表示されない
・OutOfMemoryExceptionのエラーが発生
といった状態になります。
###補足情報(言語/FW/ツール等のバージョンなど)
Unity5.5.2f1 32bitを使用しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。