私はWPFブラウザアプリケーションに取り組んでいます。ページの読み込みが完了し、重いバックグラウンド サービスの読み込みを開始するようにコンポーネントが表示されるタイミングを理解する方法を知りたいです。そうしないと、すべてのサービスが読み込まれるまで、数秒間白いページが表示されます... この問題を解決するための推奨事項はありますか?
これが私が試したことです:
public Page1()
{
InitializeComponent();
}
private void Page_Loaded_1(object sender, RoutedEventArgs e)
{
// Just some heavy process in the begining
int j = 1;
for (int i = 0; i < 10000000; i++)
{
for (int k = 0; k < 1000; k++)
j=j * 2;
}
MessageBox.Show("ready");
}
ただし、page_loaded のプロセスが完了するまで、ページ コンポーネントはページに読み込まれません。page_loaded で重い処理を行わなくても、すべてが非常に高速に読み込まれるため、UI に問題はありません。
更新:ページまたはウィンドウのロードされたイベントから私が理解したのは、ページまたはウィンドウがロードされたときにトリガーされ、ページ上のコンポーネントとコントロールのロードがその後発生するということです...そしてコントロールのロードが完了したことを示すイベントが見つからないようです...
UPDATE2: 私の問題に対するより良い解決策は、BackgroundWorker または Dispatcher を使用して重いプロセスをバックグラウンドで実行することです。この投稿で説明したように。