[英]What construct to use to run a SQL Server query and do something else while waiting for the result?
我想发出一个SQL Server查询(任务1)并在等待查询结果的同时在循环中执行某种监视(任务2)。 当task2发现满足特定条件时,需要取消查询(我将使用SQLCommand.Cancel())。 这意味着task2可以发出cancel命令,或向task1发信号取消它。 返回结果或取消发生时,task2结束,task1继续执行到方法结束。
为此使用的最佳且简单的构造是什么? TPL,异步/等待,等待句柄,事件..? 在类(不是UI)中使用.NET 4.5。
这取决于进一步的细节。 您可以使用TPL( Task.WhenAny
, CancellationTokenSource
), async/await
和基于异步TAP的SQL API(例如SqlCommand.ExecuteNonQueryAsync
)来完成此任务。
或者,根据您在task2中监视的条件以及如何传播其更改,可以使用Reactive Extensions 。
使用低级线程和同步原语API是错误的选择,它们很少应与.NET 4+一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.