Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多次调用同一方法并显示进度_C#_Asp.net_Sql Server_Asynchronous_Threadpool - Fatal编程技术网

C# 多次调用同一方法并显示进度

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

我有一个存储过程,它可以运行动态查询并生成一个静态表的结果集。作为回报,将如下所示(概念上)

我可以通过SQL Dependency或node.js向用户显示结果,但我想了解我如何准确地多次执行同一存储过程并等待响应的执行

假设调用SP的函数是fnCallSPForDynamicExec 多次调用这个函数(使用线程)对我来说是公平的。 像这样的

 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
}