2016-12-16 9 views
-2

私はC#でwinformアプリケーションを持っていますが、最初にSQLLocalDBインスタンスを作成する必要があります。 古いPCでこのプロセスに時間がかかり、一部のユーザーがアプリがクラッシュしたと思っていました。 私は、アプリケーションがインスタンスを作成していることをユーザーに知らせるスプラッシュスクリーンフォームを作成しましたが、プロセスが終了したらスプラッシュスクリーンを閉じる方法を確認できません。スプラッシュスクリーンを閉じるプロセスの終了を確認します

私はインスタンスを作成するために、次のコードでclassを持っている:

static private void ExecCmdInstance() 
{ 
    System.Diagnostics.Process process = new System.Diagnostics.Process(); 
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); 
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
    startInfo.FileName = "cmd.exe"; 
    startInfo.Arguments = "/c sqllocaldb create MSSQLLocalDB -s"; 
    process.StartInfo = startInfo; 
    process.Start(); 
} 

誰もが正しい方向に私を指すことができますしてください? ありがとうございます。

+0

'process'オブジェクトの' Process.Exited'イベントをフックします。 –

+2

[C#process.startの重複の可能性があります。プロセスが終了したかどうかはどのようにわかりますか?](http://stackoverflow.com/questions/12273825/c-sharp-process-start-how-do-i-know-if) - プロセス終了) –

+1

@Manfred Radlwimmerこんにちは、私はあなたが重複として質問をマークしたことがわかります。確かに、投稿は解決に役立ちますが、重複であると言うのはストレッチです。とにかく助けてもらえます – septaug

答えて

0

あなたは使用することができます

process.WaitForExit(); 

しかし、それはあなたのGUIのスレッドをブロックされることに注意してください。別のスレッドでプロセスを開始する場合がありますので、GUIはブロックされません。

関連する問題