我有一个文本框,我使用Timer和DispatcherTimer来延迟键盘,但它实际上并不像我预期的那样。
当Interval完成时,事件会消失。 5秒后,Fiter事件发生火灾。
以下是我的代码:
初始化变量
DispatcherTimer timerFilter;
//or
//Timer timerFilter = new Timer(5000);
初始化事件
InitializeComponent();
timerFiter = new DispatcherTimer { Interval = TimeSpan.FromSeconds(5) };
timerFiter.Tick += (s, args) =>
{
Filter();
};
//or
//timerFilter.Elapsed += Filter;
按键时
Console.WriteLine("Start");
timerFilter.Start();
//or
//timerFilter.Enabled = true;
按下键时
Console.WriteLine("Destroy");
timerFiter.Stop();
//or
//timerFilter.Enabled = false;
我的活动
private void Filter(Object source, ElapsedEventArgs e)
{
Console.WriteLine("Filter");
timerFiter.Stop();
//or
//timerFilter.Enabled = false;
}
谢谢!
答案 0 :(得分:1)
总会有一个按键事件,所以在最后一次按键操作后发生的最后一件事是:
Console.WriteLine("Start");
timerFilter.Start();
要确保在过滤结果后计时器停止,请向过滤器处理程序添加停止调用:
private void Filter(Object source, ElapsedEventArgs e)
{
Console.WriteLine("Filter");
timerFilter.Stop();
}