Enu*_*umy 1 c# asynchronous async-await
我们假设我们有这个:
private void Input_KeyDown(object sender, KeyEventArgs e)
{
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)
然后我添加async-await这样的:
private async void Input_KeyDown(object sender, KeyEventArgs e)
{
await Task.Delay(1000);
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)
不应该这样做,但只延迟一秒钟?那为什么不呢?
注意:
我不是在寻求调试帮助,我只是想知道为什么我不能用它async-await来延迟处理KeyDown
我只是想知道为什么我不能使用async-await来延迟处理KeyDown
根据定义,事件处理程序是同步的.因此,除非您的代码有办法通知事件处理程序它是异步行为(例如,WinStore样式的Deferral),否则它必须KeyEventArgs.Handled在它的第一个之前完成所有"通信"(例如)await.
如果您需要延迟输入,我建议您将代码转换为使用Reactive Extensions.
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |