2012-06-27 37 views
1

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

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

我想知道是否有一种控制方法如果过程需要超过x秒的时间才能返回,那么跳过它并继续处理,因为坐标不是强制性信息。

谢谢!

回答

0

你可以做到这一点的唯一方法是异步运行SP和一个定时器,当X秒过去时取消异步过程。

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

接下来,您可以创建一个CancellationToken并将其传递给任务的启动方法。当定时器超时(你的定时器,而不是SP)时,只需取消任务。想要快速了解如何做到这一点,我会请您阅读this question的答案。

+0

感谢浣熊,我会尝试这种方法。 –