私はWindowsフォームが初めてです。私が作成した Windows フォーム アプリは、非常に時間のかかるデータ変換タスクを実行するコンポーネントのフロントエンドです。データ変換タスクは、フォームがサブスクライブするイベントを発行します。
フォームがイベントを受け取ると、ラベル内のテキストを変更し、そのラベルを呼び出しますRefresh()
。
フォームからプロセスを実行すると、応答性が維持され、ラベル テキストが 1 分ほど更新されます。その後、単にフリーズし、Windows はデータ変換が完了するまでプロセスを「応答なし」と宣言します。フォームがフリーズすると、ラベルはデータ変換が完了したことを示します (予想どおり)。
データ変換を別のスレッドに配置していません。これを最初に試す必要がありますか? イベントはスレッドをまたぐことができますか? そうでない場合、他に何をすべきですか?