【发布时间】:2015-03-15 23:56:05
【问题描述】:
我遇到了以下问题。
我有两个 ObservableCollections coll1、coll2。添加到第一个 ObservableCollection coll1 时,我在 coll1_CollectionChanged 中添加了一些操作数据到 coll2 - 这会触发 coll2_CollectionChanged。
根据操作(添加、删除、重置),我让coll2_CollectionCHanged 调用一个函数。问题是,这个函数(让我称之为func1)启动另一个异步函数(一个查询)。在查询调用之后,函数func1 应该执行另一个操作 - 更新一些数据。
问题是,coll2_CollectionChanged EventHandler 应该等到func1 准备好(包括查询),但它没有。总而言之,coll2_CollectionCHanged 有三个 Add Actions,每次 Add 之后,EventHandler 应该等待 func1 准备好。
func1 中的查询是一个异步函数。我将func1 标记为异步并使用等待调用查询。比我让 EventHandler 调用 func1 也异步 - 我使 EventHandler 异步并用 await 调用 func1。但它不会等待。
【问题讨论】:
-
你能展示一下代码的实际样子吗?
-
我现在无法显示它,因为代码正在运行。但看起来像我描述的那样)
-
那么,你所描述的应该有效。
标签: c# silverlight asynchronous async-await eventhandler