异步加载数据的问题

时间:2010-09-06 13:34:39

标签: silverlight

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

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

2 个答案:

答案 0 :(得分:0)

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

在数据加载之前,你当然不应该阻止你的用户界面 - 这首先会破坏你被迫异步执行的全部目的。相反,您的UI应根据数据在加载时的可用性做出反应。

答案 1 :(得分:0)

这不是Silverlight问题,它是一个普遍的生产者/消费者问题。

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

更复杂的例子将涉及排队和信令,但这应该让你开始。