1

私が取り組んでいるアプリケーションでは、SaveFileDialog と OpenFileDialog を通常の目的 (ファイルを保存して開く) に使用しようとしています。

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

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

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

4

2 に答える 2

2

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

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

于 2009-05-05T15:58:33.520 に答える
1

私が知っている唯一の既存のオプションは、商用製品であるDialogWorkshop.NETですそれらには、モードレス(または別のウィンドウではなくウィンドウフォームに直接埋め込まれる)のオプションがある一連のダイアログがあります。

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

于 2009-05-05T15:59:28.523 に答える