0


0

私はセットアップに長い時間がかかる非常にコンポーネントが重いフォームを使用しています。 設定の一部は、私が進歩を集めることができないという第三者のコントロールのふるまいです。 (DevExpress XtraScheduler) これでアプリがフリーズします。

フォームがバックグラウンドでロードされるようにフォームのどのプロパティを設定する必要がありますか。また、どのイベントに満足する必要がありますか。

編集:

BackgroundWorkerを知っていますが、BW上でフォームの作成をプッシュする場合、プロセスがいつ完了したかをどのように知ることができますか? つまり、何らかの形でフォームに自分自身を準備させ(コンポーネントが実行していることを管理していないことを覚えておいてください)、それを準備したことをBWに通知できますか? どんなイベントでしょうか。

2 Answer


1


アプリケーションの初期ロードに時間がかかる場合は、https://stackoverflow.com/questions/392864/c-splash-screen-problem [スプラッシュスクリーンを追加する]を検討してください。 二次形式の場合は、 BackgroundWorkerクラスは、バックグラウンドスレッドで時間のかかるタスクを実行できる優れたコンポーネントです。メインのGUIスレッドをフリーズすることなく DoWork、http://msdn.microsoft.com/en-us/library/system.componentmodel。 backgroundworker.progresschanged.aspx [ProgressChanged]および RunWorkerCompletedイベントは特に便利です。


1


VB.NETのスプラッシュスクリーンはまさにこれに最適です。 C#で作業している場合は、Microsoft.VisualBasicをインポートして同じ効果にアクセスできます。 メインフォームがバックグラウンドでロードされ、スプラッシュスクリーンがその間フォアグラウンドでスムーズに実行されます。