如何在我的 asp.net 页面加载中同时调用多个方法? 我有 4 种方法可以在我的页面加载事件中调用。 但我想调用所有 4 种方法,而不是等待第一种方法完成后再调用第二种方法。
如何在 asp.net 4.0 中实现这一点?
最佳答案
首先,重要的是要知道您正在做的事情是否明智。如果它们都受 CPU 限制,那么不要这样做,IMO; Web 服务器已经是高度线程化的,并且通常是一个繁忙的开始。您很有可能会通过使用多核来减慢整个过程。不过,对于 1 个用户来说,它看起来很棒!
如果您受 IO 限制,那么有任意数量的方法可以做到这一点;首选是使用您正在与之交谈的内置异步方法,因此您可以使用 IOCP 而不是常规线程。因此,对于 NetworkStream
,您可以使用 BeginRead(...)
等。
然后您需要将所有内容连接在一起。更多方式;我个人倾向于使用 Monitor.Wait
和 Monitor.Pulse
,因为这样可以避免使用非托管代码(许多等待句柄实际上是操作系统提供的)。
另请注意:线程/并行与许多有趣的失败方式捆绑在一起;通常你只需要过度担心用于同步的静态方法/数据,但是如果你有多个线程在一个请求中做事情:注意颠簸......那里很多。
.NET 的下一个版本旨在使延续变得更加容易;我需要看一下我们如何轻松地将当前的实验代码应用到 IOCP 场景。
关于c# - 同时调用或调用多个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5298315/