2016-10-17 42 views
-1

我有一些Web Api控制器編程爲服務移動應用程序。如何等待(數據庫更改);在Web Api控制器c#

在其中一個控制器中,我在數據庫中插入了一些數據(狀態爲0),然後我需要等待其他外部調用來更改狀態,以及何時更改(或10秒鐘過去)返回一個json。

因此恢復:我需要等待一個表(具有唯一ID)上的列更改,然後我的Web Api控制器繼續...如果該列在10秒內不更改,則會返回錯誤。 ...

我正在嘗試使用SqlDependency,但我無法讓它等到更改,我不想在觸發後更改某些內容,我需要知道它是否在等待時發生了更改。 。

我需要的是這樣的:

int RequestStatus = await CheckRequestStatusChangeOnDB(RequestID,10); 
//await until database change or until 10 seconds has passed... 
if (RequestStatus == 1) 
       {//do something} 
if (RequestStatus == 2) 
       {//do something} 
if (RequestStatus == 0) 
       {//no change in database} 

任何人都可以^ h請幫我!

非常感謝您的幫助!

回答

1

您可以使用WhenAny創建Task當多個任務中的一個已經完成了將完成,結合Task.Delay創建將在10秒內完成的任務。一旦WhenAny完成,您可以檢查您的Task是否已完成,如果有,結果如何。

+0

謝謝@servy ...這將解決處理這兩個條件....但檢查數據庫上的更改...我該如何處理?...我如何編碼CheckRequestStatusChangeOnDB?謝謝!! –

+0

@ricardo_escovar這與你提出的問題完全不同。 – Servy

+0

也許我沒有向我解釋@servy,併爲此感到遺憾......其中有兩個問題......第一個問題(約兩個條件任務),你已經回答了,我很欣賞這個......而且第二個等待數據庫更改給出結果(這就是爲什麼我在標題和評論有關SqlDependency)它可以幫助我嗎?謝謝 –