Silverlight 异步加载数据时出现问题

Silverlight 异步加载数据时出现问题,silverlight,Silverlight,我们的应用程序在启动时下载大量数据。它需要所有操作的大部分数据。这里有一个问题:某些操作只能在加载数据后执行。异步加载时,大多数用户操作都会引发异常。 我尝试了AutoResetEvent.WaitOne(),但是。 我们可以做些什么来避免它?提前感谢。通过服务公开数据,并公开数据是否正在加载、加载、无法加载等指标。然后,用户界面可以使用该指标确定用户界面元素的可用性(通常通过命令) 在数据加载之前,您当然不应该阻塞您的UI——这首先违背了您被迫异步执行的全部目的。相反,用户界面应该根据数据加载

我们的应用程序在启动时下载大量数据。它需要所有操作的大部分数据。这里有一个问题:某些操作只能在加载数据后执行。异步加载时,大多数用户操作都会引发异常。
我尝试了AutoResetEvent.WaitOne(),但是。


我们可以做些什么来避免它?提前感谢。

通过服务公开数据,并公开数据是否正在加载、加载、无法加载等指标。然后,用户界面可以使用该指标确定用户界面元素的可用性(通常通过命令)


在数据加载之前,您当然不应该阻塞您的UI——这首先违背了您被迫异步执行的全部目的。相反,用户界面应该根据数据加载时的可用性做出反应。

这不是Silverlight的问题,而是生产者/消费者的普遍问题

根据具体环境和应用程序的具体情况,有不同的方法。如果数据生成非常快,并且您只需要使用1个单位的特定数据类型,那么在您的消费者中,您可以轮询一个标记,在生成数据后更改该标记。或者,您可以为生产者提供一个函数/方法,以便在填充数据后调用。通过这种方式,您可以将数据推送到只显示可用数据的模块

更复杂的例子将涉及排队和发信号,但这应该让您开始