2010-03-14 70 views
0

如果在频繁调用的静态方法中定义了长时间运行的操作,它是否尝试调用相同方法的ASP.Net应用程序中的其他线程是瓶颈?,是长时间运行的静态操作的瓶颈吗?

这是否仅适用于方法与“同步”属性>?

我已经搜查,似乎无法找到一个明确的答案。

回答

2

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

正如达林所说,你可能潜在地用尽线程池,但我不认为这就是你的问题担心。要明确,如果没有涉及任何同步,你肯定可以有两个线程同时执行相同的静态方法。

+0

谢谢Jon。这就是我所设想的,但我不想承担错误,并在以后付出不好的选择。 – Laramie 2010-03-15 05:26:31

0

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

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