関数を x 秒で開始する方法を知っています。次のようなものです。
private Timer timer1;
public void InitTimer()
{
timer1 = new Timer();
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Interval = 2000; // in miliseconds
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
function1();
function2();
function3();
}
ここでの問題: 関数は同時に実行できません。Function2
されている場合にのみ実行できFunction1
ます。しかし、私はそれらを同時に実行したいと考えています。それが私がこれを行うことができる理由です:
private void timer1_Tick(object sender, EventArgs e)
{
Parallel.Invoke(
() => Function1(),
() => Function2(),
() => Function3()
);
}
これは c# で行う最もスマートな方法ですか? 理解できないことParallel.Invoke
:タイマーが5秒に設定されていて、5秒後に機能1、2、3が完了していない場合、それらをすべて再度呼び出します。これらの関数を新しいスレッドで開始しますか? function1() を (同時に) 実行しているいくつかの呼び出しの後に x-threads がありますか? 本当に健康なのだろうか。
誰かがより多くの情報を取得したい場合:function1
ファイル x をフォルダー a から b にコピーするfunction2
だけで、フォルダー b からすべてのファイルを読み取って情報を保存しfunction3
、接続を確認し、接続があるかどうかを確認するだけです。適切なファイルを誰かに送信します。
コードへの提案はありますか?ありがとうございました