Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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
asp.net中的异步调用_Asp.net_Asynchronous - Fatal编程技术网

asp.net中的异步调用

asp.net中的异步调用,asp.net,asynchronous,Asp.net,Asynchronous,在这里,创建了两个线程;由BeginInvoke创建的工作线程和由SendAsync方法创建的I/O完成线程 但在他未安全排队重叠的例子中,不要推荐这个 我想在asp.net页面中使用SendAsync或…Async,我想使用PageAsyncTask。 但是,其BeginEventHandler要求返回AsyncResult,而SendAsync不返回 阿福,基于事件的异步模式是最推荐的方式,那么我们如何调用SendAsync或任何…异步方法而不创建两个线程并影响性能呢?实际上,如果您对委托或

在这里,创建了两个线程;由BeginInvoke创建的工作线程和由SendAsync方法创建的I/O完成线程

但在他未安全排队重叠的例子中,不要推荐这个

我想在asp.net页面中使用SendAsync或…Async,我想使用PageAsyncTask。 但是,其BeginEventHandler要求返回AsyncResult,而SendAsync不返回


阿福,基于事件的异步模式是最推荐的方式,那么我们如何调用SendAsync或任何…异步方法而不创建两个线程并影响性能呢?

实际上,如果您对委托或ThreadPool.WorkerItem使用BeginInvoke和endInvoke,则不会对应用程序产生任何影响,因为它们使用的是相同的线程asp.net使用的线程抛出iis 因此,现在您只有两个解决方案来进行异步调用,首先您将编写自己的线程类(但要小心) 第二,使用PageAsyncTasks(推荐)这一个更安全,它的设计与asp.net完美配合

这与其说是对性能的影响,不如说是关于如何以及何时使用asnyc任务 如果您的进程真的需要很长时间才能完成(因为IIS将等待所有进程完成,即使是asnyc进程,然后才开始渲染),那么您必须使用异步解决方案,因为它将降低性能

注意:

AddOnPreRenderCompleteAsync和RegisterAsyncTask之间存在差异 在那里,它们看起来是一样的,但在第二个

  • 您可以访问当前的http 语境、模仿、文化与文化 档案资料等
  • 您可以并行运行许多任务
  • 您有超时事件,您可以 确定页面中的超时 属性
  • 您可以调用RegisterAsyncTask 在一次请求中多次 注册几个异步操作