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构造函数中使用.我可以用任何方式使用自己的委托/函数调用吗?
您可以通过Timer Constructor的state参数将参数传递给回调:
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)