繁体   English   中英

在等待结果时可以使用哪种结构来运行SQL Server查询并执行其他操作?

[英]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.WhenAnyCancellationTokenSource ), async/await和基于异步TAP的SQL API(例如SqlCommand.ExecuteNonQueryAsync )来完成此任务。

或者,根据您在task2中监视的条件以及如何传播其更改,可以使用Reactive Extensions

使用低级线程和同步原语API是错误的选择,它们很少应与.NET 4+一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM