我有一个程序让用户创建几个函数,一旦他创建了所有函数,我每 x 毫秒运行一次。换句话说,我有类似的东西:
// functionsToExecute is of type = List<Action>
// x = some integer
while(true){
foreach(Action action in functionsToExecute)
{
action();
}
Thread.Sleep(x);
}
现在我想让用户决定每个函数等待多长时间。例如,如果用户创建了 2 个函数,他可能希望第一个函数每 500 毫秒运行一次,下一个每 1500 毫秒运行一次。我正在考虑为这种情况创建两个线程,然后具有相同的实现。但是如果用户创建了 50 个函数呢?我需要50个线程!
简而言之,我想每 n 毫秒执行 x 次动作……创建这种算法的最佳方法是什么?例如,如果我有 3 个动作,我希望每 200 毫秒执行第一个动作,每 500 毫秒执行下一个动作,每 1000 毫秒执行最后一个动作。
也许我需要类似于SetTimout
javascript 中的函数的东西