ユーザーにいくつかの関数を作成させるプログラムがあり、ユーザーがすべての関数を作成したら、xミリ秒ごとにそれらを実行します。言い換えれば、私は次のようなものを持っています:
// functionsToExecute is of type = List<Action>
// x = some integer
while(true){
foreach(Action action in functionsToExecute)
{
action();
}
Thread.Sleep(x);
}
ここで、関数ごとに待機する時間をユーザーが決定できるようにします。たとえば、ユーザーが 2 つの関数を作成する場合、最初の関数を 500 ミリ秒ごとに実行し、次の関数を 1500 ミリ秒ごとに実行することを希望する場合があります。このシナリオでは 2 つのスレッドを作成し、同じ実装にすることを考えていました。しかし、ユーザーが 50 個の関数を作成した場合はどうなるでしょうか? 50 スレッドが必要になります。
要するに、n ミリ秒ごとに x 個のアクションを実行したいと思います...そのようなアルゴリズムを作成する最良の方法は何ですか? たとえば、3 つのアクションがある場合、最初のアクションを 200 ミリ秒ごとに実行し、次のアクションを 500 ミリ秒ごとに実行し、最後のアクションを 1000 ミリ秒ごとに実行します。
SetTimout
多分私はjavascriptの関数に似たものが必要です