我目前正在使用异步等待扩展WinForms应用程序。
MainForm正在等待一些条形码扫描输入并对MainForm_KeyDown事件作出反应。
为了避免用户在键盘上键入一些废话并使实际扫描失败,我实现了一个Timer,它可以清除所有300ms的ScanInput字符串。
我想展示一些实施细节:
public SomeCtor()
{
_timer = new Timer(){ Interval = 300 };
_timer.Tick += timer_Tick;
}
void timer_Tick(object sender, EventArgs e)
{
ScanInput = String.Empty;
}
private async void MainForm_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Enter:
await OnScanBarcodeAsync(ScanInput);
break;
}
_timer.Stop();
_timer.Start();
}
现在我的问题是: 是否有可能我会得到异步等待由Timer引起的这种实现的问题?应用程序的可见性非常糟糕。