c#定时器-调度接受参数的函数调用

本文关键字:参数 函数调用 定时器 调度 | 更新日期: 2023-09-27 18:16:48

我想每X秒调用一个函数。我读了很多关于System.Threading.Timer的文章,所以我就这么做了:

Timer timer = new Timer(new TimerCallback(TimeCallBack), null, 0, 50000);

调用函数:

void TimeCallBack();

但是,我想传递一个参数给该函数,以便计时器调用以下函数:

void TimeCallBack(MyClass mc);

我可以将我要传递的实例设为全局但我宁愿传递它。从我看到的TimerCallback委托是在Timer构造函数中使用的。任何方式我可以使用我自己的委托/函数调用?

c#定时器-调度接受参数的函数调用

您可以通过Timer构造函数的state参数传递一个参数给回调:

Timer timer = new Timer(new TimerCallback(TimeCallBack), mc, 0, 50000);
回调:

void TimeCallBack(object state)
{
    MyClass mc = (MyClass)state;
}