0

我有这个客户端应用程序,它向我的 wcf 服务发送数千个要删除的项目。由于数据是批量发送的,即使我取消操作(带进度条),所有项目都会被删除。我想要的行为是能够取消服务中的删除操作并检索未删除的项目。谢谢你。

4

1 回答 1

0

您使用的是什么 InstanceContextMode?

您想要做的将适用于 InstanceContextMode Singleton 或 Session,但不适用于 PerCall。

我想您发起批量删除操作的方法是 OneWay。

在您的服务中创建一个 bool 字段(最初为 false)。逐一删除记录的循环会检查该标志并在标志为真时停止。

在您的服务中创建另一个方法,将该字段设置为 true。当您按下“取消删除”按钮时,从您的网站调用新方法。删除记录的循环将中断。

返回未删除的记录会有点棘手。您要删除的记录列表也需要是服务类的成员,以便停止删除的方法也可以访问该列表。从数据库中删除的方法应该也从列表中一一删除记录,以便您可以跟踪剩余项目。

您可以在第二种方法中立即返回列表,但不保证准确的结果。我要做的是在返回之前等待 200 毫秒。这样你就知道从列表中删除的项目在数据库中确实被删除了。

希望这很清楚...

于 2011-07-29T07:51:30.177 回答