私のアプリケーション (C#、VS2008) は、ネットワーク経由でデータベース (SQL Server 2008 Express) から情報を読み込みます。(おそらく)長い待機中に、「読み込み中...」ダイアログボックスを別のスレッドで実行して表示したいのですが、操作に特定の時間(たとえば500ミリ秒)以上かかる場合のみです。
そのため、これまでのところ、読み込みダイアログフォームの所有者を設定せずに (つまり、LoadingDialog.ShowDialog() を呼び出して) 500 ミリ秒後に読み込みフォームが表示されるようになりました (つまり、LoadingDialog.ShowDialog() を呼び出します) が、LoadingDialog.ShowDialog(IWin32Window所有者) 所有者がメイン フォームに設定されている (スレッドのパラメーターを介して渡される) スレッド間のコントロールへのアクセスに関する InvalidOperationException が発生します。
私の基本的な質問は、所有者パラメーターが別のスレッドのフォームに設定されたフォームを作成して ShowDialog できますか? ローディングダイアログがアプリケーションの残りの部分でモーダルになるように、つまり、他のダイアログがフォーカスを取得し、他の場所での入力を許可しないように、これを行いたいと思います。
誰でも提案できますか?運の悪いスプラッシュスクリーンについて、また運の悪い Invoke と BeginInvoke についてたくさん読んだことがあります。これについて別の方法がありますか?
わからないことがあればお気軽にご質問ください。
Merci(フランス語で言うように)、
ジェイコブ。