C#timer - 调度对接受参数的函数的调用

s5s*_*s5s 1 c# delegates timer

我想每隔X秒调用一次函数.我读了关于System.Threading.Timer的SO,所以我这样做:

Timer timer = new Timer(new TimerCallback(TimeCallBack), null, 0, 50000);
Run Code Online (Sandbox Code Playgroud)

调用函数:

void TimeCallBack();
Run Code Online (Sandbox Code Playgroud)

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

void TimeCallBack(MyClass mc);
Run Code Online (Sandbox Code Playgroud)

我可以让我通过全球的实例,但我宁愿通过它.从我看到的TimerCallback委托在Timer构造函数中使用.我可以用任何方式使用自己的委托/函数调用吗?

dtb*_*dtb 9

您可以通过Timer Constructorstate参数将参数传递给回调:

Timer timer = new Timer(new TimerCallback(TimeCallBack), mc, 0, 50000);
Run Code Online (Sandbox Code Playgroud)

打回来:

void TimeCallBack(object state)
{
    MyClass mc = (MyClass)state;
}
Run Code Online (Sandbox Code Playgroud)