因此,关于C#5中新的异步支持的问题一直困扰着我:
用户按下一个按钮即可启动异步操作。呼叫立即返回,并且消息泵再次开始运行-这就是重点。
因此,用户可以再次按下按钮-导致重新进入。如果有问题怎么办?
在我看到的演示中,他们在await
通话前禁用了按钮,然后在通话后再次启用了该按钮。在我看来,这似乎是现实应用中非常脆弱的解决方案。
我们是否应该编写某种状态机来指定必须为给定的一组运行操作禁用哪些控件?或者,还有更好的方法?
我很想在操作过程中只显示一个模式对话框,但这有点像使用大锤。
有人有什么好主意吗?
编辑:
我认为禁用在操作运行时不应该使用的控件是脆弱的,因为我认为当您拥有带有许多控件的窗口时,它很快就会变得很复杂。我喜欢使事情简单,因为在初始编码和后续维护期间,它减少了错误的机会。
如果存在针对特定操作应禁用的控件集合,该怎么办?如果同时执行多个操作怎么办?