C#运行SQL server查询,不要等待结果

C#运行SQL server查询,不要等待结果,c#,sql-server,sql-server-2012,task-parallel-library,executenonquery,C#,Sql Server,Sql Server 2012,Task Parallel Library,Executenonquery,我正在用它来开发一个网站 当我单击一个按钮时,它应该运行一个SQL命令,该命令启动一个存储过程 我的代码 公共ListResponse运行SQL(IDbConnection连接,ListRequest请求) { string sql=“EXEC SP_A@Username=”+Authorization.UserDefinition.Username+”; ExecuteNonQuery(连接,sql); 返回新的MyRepository().List(连接、请求); } 这段代码运行得很好,

我正在用它来开发一个网站

当我单击一个按钮时,它应该运行一个SQL命令,该命令启动一个存储过程

我的代码

公共ListResponse运行SQL(IDbConnection连接,ListRequest请求) { string sql=“EXEC SP_A@Username=”+Authorization.UserDefinition.Username+”; ExecuteNonQuery(连接,sql); 返回新的MyRepository().List(连接、请求); } 这段代码运行得很好,但它会使我的web变慢,因为我的web需要等待查询完成

我想启动SQL命令,而不是等待结果。我可以为此使用任务并行库(TPL)吗

我可以使用TPL(任务并行库)吗

不,你不能。如果你执行一个语句,我甚至不确定你从哪里得到一个想法,即一个项目的并行将起到任何作用。如果该查询需要很长时间,请分析它是否有缺陷。如果它没有缺陷

…将API更改为异步,并返回一个稍后返回的令牌。它正在等待返回值,因为您已将API导出为同步的。如果您认为这是不可接受的,那么API是一个设计错误,至少该方法的设计应该更改


async/await/Parallelism中的任何内容都不会改变API设计,也不会神奇地使请求完成得更快。

您需要在ASP.Net中进行后台处理。请参阅文档:注意:将值直接注入sql命令字符串可能导致sql注入问题请查看参数;如果您的
SqlHelper
不允许您使用参数:用火烧掉它,并用可以使用的东西替换它(只需说:Dapper工作正常:
connection.Execute(“SP_A”,new{Authorization.UserDefinition.Username},commandType:commandType.StoredProcedure);
),因为查询需要很长时间,我不想我的网站是超时和等待。你能帮我解决我的问题吗?是的,编写API,这样它就不会等到查询完成。它超时是因为你这样写的,实际上它超时是因为你不需要修改默认的超时值。因为查询需要很长时间,我不希望我的网站超时并等待。你能帮我解决我的问题吗?