質問

作業中のアプリケーションでは、SaveFileDialogとOpenFileDialogを慣例的な目的(ファイルの保存とオープン)で使用しようとしています

ただし、UIを所有するスレッドで時間に敏感なことが多すぎるため、アプリケーションはクラッシュせずにモーダルフォーム/ダイアログをサポートできません。

これらの機能をUI所有スレッドから移動するようにアプリケーションを書き換えることは、当面は実用的ではありません。私が取り組んできた機能を完成させるには、2つのファイルダイアログの代わりが必要です。できれば、非モーダルフォームで使用できるコントロールが必要です。

使用可能なUI所有スレッドをブロックしないものはありますか?

役に立ちましたか?

解決

私が知っている唯一の既存のオプションは、商用製品である Dialog Workshop.NET です。モードレス(または別のウィンドウの代わりにウィンドウフォームに直接埋め込まれる)のオプションを持つダイアログのセットがあります。

ただし、代わりに、時間に依存するロジックを別のスレッドに移動しようと考えています。モードレスダイアログは、ファイルダイアログの動作とは異なるため、ユーザーを混乱させる可能性があります。ブロックできないUIを使用すると、他にも潜在的な影響があります。

他のヒント

  

UIを所有するスレッドで、時間に敏感なことが多すぎます。

それがあなたの本当の問題です。 .Netには、非常に堅牢なマルチスレッドサポートがあります。これらのことを他の場所に移動することをお勧めします。おそらく、[開く] / [保存]ダイアログを再実装するよりも作業が少なく、長期的にはアプリにとって間違いなく少ないでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top