C# 多次调用同一方法并显示进度
我有一个存储过程,它可以运行动态查询并生成一个静态表的结果集。作为回报,将如下所示(概念上) 我可以通过SQL Dependency或node.js向用户显示结果,但我想了解我如何准确地多次执行同一存储过程并等待响应的执行 假设调用SP的函数是fnCallSPForDynamicExec 多次调用这个函数(使用线程)对我来说是公平的。 像这样的C# 多次调用同一方法并显示进度,c#,asp.net,sql-server,asynchronous,threadpool,C#,Asp.net,Sql Server,Asynchronous,Threadpool,我有一个存储过程,它可以运行动态查询并生成一个静态表的结果集。作为回报,将如下所示(概念上) 我可以通过SQL Dependency或node.js向用户显示结果,但我想了解我如何准确地多次执行同一存储过程并等待响应的执行 假设调用SP的函数是fnCallSPForDynamicExec 多次调用这个函数(使用线程)对我来说是公平的。 像这样的 Page_Load() { foreach(var task in tasklist) { T
Page_Load()
{
foreach(var task in tasklist)
{
Task taskWork = Task.Run(new Action(fnCallSPForDynamicExec(task.taskid));
// Do something on UI
taskWork.Wait();
// Do something on UI
}
}
private void fnCallSPForDynamicExec (int task id)
{
//call dynamic SP
}
这是正确的方法还是其他方法
如果你能让我转到一些博客/白皮书/样本,我将不胜感激
注意:以上代码只是基于假设,语法可能不正确。您的思路正确,但不要使用
Task.Wait()
,因为这可能会导致死锁。您可以等待对任务的调用。运行
public void async Page_Load()
{
foreach(var task in tasklist)
{
await Task.Run(() => fnCallSPForDynamicExec(task.taskid));
// Do something on UI
}
}
private void fnCallSPForDynamicExec (int taskid)
{
//call dynamic SP
}