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_Static_Multithreading_Methods - Fatal编程技术网

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

在ASP.Net中,长时间运行的静态操作是一个瓶颈吗?,asp.net,static,multithreading,methods,Asp.net,Static,Multithreading,Methods,如果在一个经常调用的静态方法中定义了一个长时间运行的操作,那么ASP.Net应用程序中的其他线程尝试调用相同的方法是否会遇到瓶颈 这是否仅适用于具有“Synchronized”属性>的方法 我已经搜索过了,似乎找不到确切的答案。这将取决于您何时调用此静态方法。如果您直接从代码隐藏处调用它(例如在页面加载或某些按钮单击中),您将独占为请求提供服务的线程。为请求提供服务的线程从线程池中提取。如果对它们调用缓慢的操作(无论您调用的是静态方法还是实例方法),您的应用程序服务能力将受到影响 如果操作是IO

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

这是否仅适用于具有“Synchronized”属性>的方法


我已经搜索过了,似乎找不到确切的答案。

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


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

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


正如Darin所说,您可能会耗尽线程池,但我认为这不是您的问题所担心的。非常清楚,如果不涉及任何同步,您肯定可以让两个线程同时执行相同的静态方法。

谢谢Jon。这是我的假设,但我不想假设错误,并为以后的错误选择付出代价。