C#定时器功能?

时间:2011-04-01 21:11:42

标签: c# timer

我在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”?

由于

3 个答案:

答案 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();

有关代码和完整示例,请参阅:

http://www.avantprime.com/blog/24/an-example-of-repeating-code-using-a-worker-thread-without-using-timers-c