2016-06-15 8 views
0

ブラウズボタンを押したときにfiledialogを開くアプリケーションを作ったので、最大5つのexeファイルを選択することができます。同じ時間..単純な権利ですか?C#でタイマーを使ってEXEファイルを開いたり閉じたりする

スタートを押すとソフトウェアが起動しますが、一定の時間が過ぎると再び閉じます。ユーザーのバリーからテキストボックスに入力した時間を取得します。 Process.Start(FileName)をテキストボックスとタイマーのタイマーに接続する方法を理解しています。

どうすればこの構造を構築できますか?すなわち

タイマーを作成します。
タイマー間隔を使用して、ミリ秒単位で設定します。
タイマーをコードに接続してください

私はアプリケーションがどのように構築されているかを見ていますが、どこから起動するのかはわかりませんでした。

This is what the application looks like

+0

あなたが説明したことはすべて実行可能だと思います。基本から始めて、問題を小さな塊に分割し、あなたのアイデアをプログラムしようとする。 – Alex

答えて

2

はい、タイマー実行させ、その後、xミリ秒の後、彼らにProcess.Killを発行します。

ます。また、それぞれに別のスレッドを使用して、以下のような何かを行うことができます:あなたがリストにあなたのEXEファイルを持っている場合は

Task.Run(() => 
{ 
    // start the process and keep track of it 
    var theProcess = Proces.Start(one of the porcesses); 

    // sleep for your desired number of milliseconds. 
    Thread.Sleep(5000); 

    // end the process (violently :) 
    theProcess.Kill(); 
}); 

は、あなたもParallel.ForEachと、上記と同様行うことができます() :

Parallel.ForEach(filenames, (file) => 
{ 
    var theProcess = Process.Start(file); 
    Thread.Sleep(5000); 
    theProcess.Kill(); 
}); 
+0

私はあなたがどこから来ているのかを見ていますが、私はtimer.interval()のような何かをするのですか?多分? – JonathanCoal

+0

@JonathanCoalはい、単純なタイマーが動作します。 http://www.dotnetperls.com/timer – CathalMF

+0

@Joehl私はこの ます。private void timer1_Tickからintに文字列を変換することができないエラーを取得しておく(オブジェクト送信者のEventArgs e)の { するvar firstProcess = Process.Start(textBoxFirst 。テキスト); Thread.Sleep(MinTextBoxFirst.Text); } – JonathanCoal

関連する問題