Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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# 在asp.net中执行存储过程时,如何在其他页面上连续工作?_C#_Asp.net_Vb.net - Fatal编程技术网

C# 在asp.net中执行存储过程时,如何在其他页面上连续工作?

C# 在asp.net中执行存储过程时,如何在其他页面上连续工作?,c#,asp.net,vb.net,C#,Asp.net,Vb.net,我有一个需要从asp.net按钮执行的存储过程,它需要30多分钟才能执行 因此,在这里,我需要在执行时显示一条类似“正在处理”的消息,并禁用两个链接。一旦执行完成,我需要显示“上次处理的数据和时间”,并启用禁用的链接 所以在“进程中”阶段,我们必须允许用户访问站点中的其他页面。这怎么可能 请在这个要求上帮助我。提前感谢。您的核心问题是设计问题。任何需要这么长时间的操作都不会以任何方式阻塞UI。您可能可以通过使用标志来解决这个问题,但是我首先要认真地重新考虑是否要在这个东西运行时禁用任何东西。理想

我有一个需要从asp.net按钮执行的存储过程,它需要30多分钟才能执行

因此,在这里,我需要在执行时显示一条类似“正在处理”的消息,并禁用两个链接。一旦执行完成,我需要显示“上次处理的数据和时间”,并启用禁用的链接

所以在“进程中”阶段,我们必须允许用户访问站点中的其他页面。这怎么可能


请在这个要求上帮助我。提前感谢。

您的核心问题是设计问题。任何需要这么长时间的操作都不会以任何方式阻塞UI。您可能可以通过使用标志来解决这个问题,但是我首先要认真地重新考虑是否要在这个东西运行时禁用任何东西。理想情况下,用户会运行它,忘记它,最终得到一些东西,说“它完成了”。假设他们到那时还在乎——30分钟是很长的时间。

停止多次执行sp并从另一个线程运行sql调用,完成后,您可以使用Invoke或设置标志,让主应用程序线程知道它已完成并相应地执行。虽然30分钟是一段很长的时间

但执行sp itslef需要30分钟以上。
sp itslef需要更多的时间。同时,我需要将消息显示为“正在处理”,还需要访问其他页面。我明白了,但我想不出任何合理的SP(可能基于备份的SP除外)需要30分钟。我认为这样做的目的是禁用再次启动SP。