1

我有一个带有 Linq to SQL 模型的 WPF 应用程序。在 .dbml 文件中,我有一个返回地址坐标的存储过程。该程序使用活动的互联网连接调用谷歌地图“服务”并获取坐标。

问题是,当互联网连接很慢或很忙时,该过程需要很长时间才能返回坐标,并且我在 C# 中得到一个 TimeOut 异常。

我想知道是否有办法控制如果该过程需要超过 x 秒才能返回,则跳过它并继续该过程,因为坐标不是强制性信息。

谢谢!

4

1 回答 1

0

您可以做到这一点的唯一方法是异步运行 SP 并使用计时器,在 X 秒过去后取消异步进程。

要做到这一点,您可以采取简单的方法并使用Task.

接下来,您可以创建一个CancellationToken并将其传递给任务的 start 方法。当计时器超时(您的计时器,而不是 SP),只需取消任务。有关如何执行此操作的快速方法,我将要求您阅读有关此问题的答案。

于 2012-06-27T20:08:52.653 回答