如果在经常调用的静态方法中定义了长时间运行的操作,那么尝试调用相同方法的ASP.Net应用程序中的其他线程是否会成为瓶颈?
这仅适用于具有“已同步”属性>的方法吗?
我已经搜索过,似乎无法找到明确的答案。
答案 0 :(得分:2)
不,它不会阻止任何其他线程,除非该方法获取公共锁(例如由于Synchronized
属性)或调用同步方法本身。
正如Darin所说,你可能可能耗尽线程池,但我不认为这是你的问题所担心的。要绝对清楚,如果没有涉及任何同步,你绝对可以让两个线程同时执行相同的静态方法。
答案 1 :(得分:0)
这取决于您何时调用此静态方法。如果您直接从后面的代码中调用它(例如在Page_Load
或某些按钮单击),您将独占服务请求的线程。服务请求的线程是从线程池中提取的。如果对它们调用慢速操作(无论您是调用静态方法还是实例方法),您的应用程序服务功能都会受到影响。
如果操作是IO绑定的(数据库调用,Web服务调用,一般的某些网络调用),您可以使用asynchronous pages来提高性能。