我知道如何在 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 没有完成但我再次调用它们怎么办。我是否在新线程中启动这些功能?是否有一些调用 x-threads 运行 function1() (同时)?想知道这真的很健康。
如果有人想获取更多信息:function1
是否只是将文件 x 从文件夹 a 复制到 b,function2
是否仅用于读取文件夹 b 中的所有文件并保存信息,function3
是否仅用于检查连接以及是否存在连接将适当的文件发送给某人。
对代码有什么建议吗?谢谢