コードの形をロードする最初の
1 公共 部分 クラスFrmLoading:フォーム 2 { 3 公共のBackgroundWorker updateDBWorker = 新規のBackgroundWorker()。 4 5 パブリックアクションBackgroundWorkAction 6 { 7 GET 。 8 セット。 9 } 10 11 公衆 KeyValuePair < 整数、文字列 > CurrentMsg 12 { 13は、 設定 14 { 15 本.updateDBWorker.ReportProgress(value.Key、value.Value)。 16 } 17 } 18 19 公衆FrmLoading() 20 { 21 のInitializeComponent(); 22 この .updateDBWorker.WorkerReportsProgress = 真; 23 この .updateDBWorker.WorkerSupportsCancellation = 真; 24 この .updateDBWorker.DoWork + = 新しい DoWorkEventHandler(この.backgroundWorker1_DoWork)。 25 この .updateDBWorker.ProgressChanged + = 新しいですProgressChangedEventHandler(この.backgroundWorker1_ProgressChanged)。 26 この .updateDBWorker.RunWorkerCompleted + = 新しい RunWorkerCompletedEventHandler(この.backgroundWorker1_RunWorkerCompleted)。 27 lblVer.Text = Properties.Resources.SystemVer。 28 } 29 30 31 公共 ボイド ShowLog(ストリング strLog、INT intValue) 32 { 33 であれば(この.lblLog.InvokeRequired) 34 { 35 本.lblLog.BeginInvoke(新しい MethodInvoker(デリゲート(){ShowLog(strLog、intValue);}))。 36 } 37 他の 38 { 39 lblLog.Text = strLog。 40 この .progressBar1.Value = intValue。 41 } 42 } 43 44 プライベート ボイド FrmLoading_Load(オブジェクト送信者、のEventArgs電子) 45 { 46 この.updateDBWorker.RunWorkerAsync()。 47 } 48 49 プライベート ボイド backgroundWorker1_DoWork(オブジェクト送信者、DoWorkEventArgs E) 50 { 51 であれば(この .BackgroundWorkAction!= NULL ) 52 { 53 この.BackgroundWorkAction()。 54 } 55 のThread.sleep(100 )。 56 であれば(ベース.InvokeRequired) 57 { 58 塩基 .BeginInvoke(新しい MethodInvoker(デリゲート 59 { 60 塩基.Close()。 61 }))。 62 } 63 他の 64 { 65 塩基.Close()。 66 } 67 } 68 69 プライベート ボイド backgroundWorker1_ProgressChanged(オブジェクト送信者、ProgressChangedEventArgs E) 70 { 71 ShowLog((e.UserState == NULL)?"" :e.UserState.ToString()、e.ProgressPercentage)。 72 } 73 74 民間 のボイドbackgroundWorker1_RunWorkerCompleted(オブジェクト送信者、RunWorkerCompletedEventArgs E) 75 { 76 } 77 }
画面上のプログレスバー、ラベル、ない何か
場所、プログラムファイルの内部を呼び出す見て
1 FrmLoading frmLoading = 新しい新しいFrmLoading(); 2 frmLoading.BackgroundWorkAction = デリゲート 。3 { 4 トライ 5 { 6 // 接続文字列を設定する 。7 frmLoading.CurrentMsg = 新しい新しい KeyValuePair < 整数、文字列 >(1、" コンフィギュレーションデータを初期化.. 。" ); 8 。9 frmLoading.CurrentMsg = 新しい新KeyValuePair < int型、文字列 >(。5、" ログの設定を初期化しています... " ); 10 System.Threading.Thread.Sleep(200です;) 11。 12がある = frmLoading.CurrentMsg 新しい新しい KeyValuePair < int型、文字列 >(10、" されますローカルデータをアップグレード... " ); 13は 14 frmLoading.CurrentMsg = 新しい新しい KeyValuePair < int型、文字列 >(50、" ローカルパラメータを初期化されます... " ); 15 16 frmLoading.CurrentMsg = 新しい新しい KeyValuePair < int型、文字列 >(85、" ...ホットキーの初期化" ); 17 18はある frmLoading.CurrentMsg = 新しい新しい KeyValuePair < int型、文字列 >(90、" ハードウェアデバイスを初期化する... " ); 19 20である frmLoading.CurrentMsg = 新しい新しい KeyValuePair < INT、文字列 >(100、" 初始化完成... " ); 21 22 } 23 キャッチ(例外EX) 24 { 25 Application.Exit()。 26 Process.GetCurrentProcess()(キル)。 27 } 28 }。 29 frmLoading.ShowDialog()。 30 31 Application.Run(新しい Form1の())。
まあ、それはそう、技術的な内容ではなく、マップされていない、あなたはそれを持つことができます