2016-10-17 37 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)它可以帮助我吗?谢谢 –