我在C#2010工作,我有一个Timer:
private Timer m_Timer;
void KA(string SendStuff, object State)
{
}
m_Timer = new Timer(new TimerCallback(KA(DATA)));
我希望这个计时器调用函数“KA”,传递任何“DATA”。
DATA是一个字符串
如何将定时器信息传递给功能“KA”?
由于
答案 0 :(得分:8)
你可以使用delegate / lambda表达式:
string stuff = "hi";
Timer t = new Timer(new TimerCallback(_ => KA(stuff, null)));
修改强>
经过考虑和反馈后,更简洁的版本是:
string stuff = "hi";
Timer t = new Timer(state => KA(stuff, state));
答案 1 :(得分:4)
我认为这就是你要找的东西
private Timer m_Timer;
void KA(object state)
{
string data = (string) state;
}
m_Timer = new Timer(new TimerCallback(KA), DATA);
答案 2 :(得分:0)
尝试调查这篇文章,该文章在c#中演示了一个以指定间隔运行的通用轮询组件,并使用后台线程来执行指定的用户操作。
样本用法:
IPoller poller = new UrlPoller(args[0], TimeSpan.FromSeconds(7));
IPolling pollingComponent = new Polling.Core.Polling(poller);
pollingComponent.SubscribeForPollingUpdates(PollingAction);
pollingComponent.Start();
有关代码和完整示例,请参阅: