2012-06-27 38 views
1

我有一個WPF應用程序與Linq to SQL模型。在.dbml文件中,我有一個存儲過程返回地址的座標。該程序使用主動互聯網連接來調用谷歌地圖「服務」並獲得座標。WPF與Linq to SQL,超時過程

問題是,當互聯網連接速度緩慢或繁忙時,該過程需要很長時間才能返回座標,並且我在C#中遇到TimeOut異常。

我想知道是否有一種控制方法如果過程需要超過x秒的時間才能返回,那麼跳過它並繼續處理,因爲座標不是強制性信息。

謝謝!

回答

0

你可以做到這一點的唯一方法是異步運行SP和一個定時器,當X秒過去時取消異步過程。

要做到這一點,您可以採取簡單的方法並使用Task

接下來,您可以創建一個CancellationToken並將其傳遞給任務的啓動方法。當定時器超時(你的定時器,而不是SP)時,只需取消任務。想要快速瞭解如何做到這一點,我會請您閱讀this question的答案。

+0

感謝浣熊,我會嘗試這種方法。 –