gpt4 book ai didi

c# - 多次调用相同的方法并显示进度

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:16 25 4
gpt4 key购买 nike

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

我可以通过 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
}

这是正确的还是有其他实现方法?

如果您能将我重定向到一些完成此类工作的博客/白皮书/示例,我将不胜感激

P.S.:以上代码只是基于假设,在语法方面可能不正确。

最佳答案

您走在正确的轨道上,但不要使用 Task.Wait(),因为这会导致死锁。 See Best Practices in Asynchronous Programming .您只需await 调用Task.Run

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
}

关于c# - 多次调用相同的方法并显示进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27600516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com