管理silverlight中的异步序列?

时间:2010-10-28 06:22:44

标签: silverlight silverlight-4.0

在我的项目中,我想首先删除一些行然后插入新行。

但有时会发生的事情是先插入新行然后删除起始行。

要解决这个问题,我需要按照正确的顺序管理操作。

请帮帮我。

1 个答案:

答案 0 :(得分:1)

这是Silverlight常见的模式/问题,因为几乎所有“一切”都是异步的(出于好的理由)。

根据您的添加和删除的触发方式,您可以排队任务(例如代理列表)并让每个任务在完成后从列表中执行下一个任务。

替代方案听起来有点复杂,但我们提出的解决方案是创建一个SequentialAsynchronousTaskManager类,其操作方式与SilverlightTest类类似,后者使用EnqueueConditional()方法添加等待条件和EnqueueCallback() s执行代码。

它基本上包含一个委托列表(可以是简单的Lambda表达式),并定期执行它,直到它返回true(EnqueueConditional)或只执行一些代码(EnqueueCallback)。