在ASP.Net中,长期运行静态操作是一个瓶颈吗?

时间:2010-03-14 20:17:27

标签: asp.net static multithreading methods

如果在经常调用的静态方法中定义了长时间运行的操作,那么尝试调用相同方法的ASP.Net应用程序中的其他线程是否会成为瓶颈?

这仅适用于具有“已同步”属性>的方法吗?

我已经搜索过,似乎无法找到明确的答案。

2 个答案:

答案 0 :(得分:2)

不,它不会阻止任何其他线程,除非该方法获取公共锁(例如由于Synchronized属性)或调用同步方法本身。

正如Darin所说,你可能可能耗尽线程池,但我不认为这是你的问题所担心的。要绝对清楚,如果没有涉及任何同步,你绝对可以让两个线程同时执行相同的静态方法。

答案 1 :(得分:0)

这取决于您何时调用此静态方法。如果您直接从后面的代码中调用它(例如在Page_Load或某些按钮单击),您将独占服务请求的线程。服务请求的线程是从线程池中提取的。如果对它们调用慢速操作(无论您是调用静态方法还是实例方法),您的应用程序服务功能都会受到影响。

如果操作是IO绑定的(数据库调用,Web服务调用,一般的某些网络调用),您可以使用asynchronous pages来提高性能。