【发布时间】:2012-12-03 07:11:38
【问题描述】:
我有一个简单的应用程序,它使用 async / await(带有异步目标包的 .NET 4.0)与数据库通信并返回结果。
在数据可用之前,我需要更改某些表单元素的行为。对于简单的实现,我想禁用表单元素,直到数据可用。或者改变表单元素上点击事件的行为。
正确的做法是什么?
我想过
- 有一些布尔属性让元素知道线程正在运行。
- 使用事件表单来工作的按钮? (我怀疑这是解决方案,但请详细说明如何)
谢谢。
【问题讨论】:
-
哪些行为必须改变,如何改变?
-
@RoyDictus:更新了问题
-
@L.B:我希望我的表单可以用于某些元素。
-
您希望它们开始禁用,还是响应某些用户输入?您的数据源公开了哪些 API?
-
@JonSkeet:我按下了一个进行数据访问调用的按钮,并且我正在使用 async / await (正如您在另一个线程中指出的那样)。发生这种情况时,我需要禁用 10-20 个表单元素。我不想相信我需要使用布尔属性来做到这一点......我认为观察者模式(或类似的东西)是合适的......
标签: c# .net winforms multithreading design-patterns