我在Outlook中有一个包装类,它有可能同时处理大量事件,但我只想在用户触发后提示用户一次。我正在使用Redemption来存储我的消息/文件夹ID,但是需要创建一种方法来在捕获所有ID之后触发事件。
建议我使用Timer类来处理这个问题,但我还没有写过一个,对如何正确完成这个任务感到有些困惑。
提前致谢
答案 0 :(得分:1)
这是一个收集from MSDN的简单示例:
using System;
using System.Timers;
public class TimerExample
{
public static void Main()
{
Timer aTimer = new Timer();
aTimer.Elapsed += OnTimedEvent;
aTimer.Interval = 2000;
aTimer.Enabled = true;
Console.ReadLine(); // artificially pause app to let timer run
GC.KeepAlive(aTimer);
}
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Console.WriteLine("Timer event fired");
// pseudocode:
// check for new events collected
// if any exist, take first and present UI to user
// if more exist, then consinue
}
}
这是一个控制台应用程序,可在应用程序的入口点创建和启动计时器。如果您正在使用GUI应用程序,则可以在表单中的OnLoad事件中使用相同的代码。 OnTimedEvent处理程序将保持不变。那个事件是你在逻辑上测试所收集的OUtlook事件并决定是否需要通知用户。