在Web页面查找中委派线程开销

时间:2010-12-01 10:56:54

标签: c# asp.net multithreading delegates

我已经做了一些搜索,但还没有看到我正在寻找的信息。

我有一个Web应用程序,用户将访问一个带有QueryString参数的页面,该参数传递我应该检索的对象的ID。

我需要做的是运行一系列检查以确保用户可以访问该数据,并查明其他用户是否在该对象上有锁(记录在数据库中)。

目前这些搜索都是按顺序执行的,但我认为最好的选择可能是使用代理能够立即触发所需的三到四次搜索,然后在返回时使用结果。

我的实现是使用委托并调用BeginInvoke,但是我担心线程化的开销可能导致速度没有提高。

我的研究表明它将使用ThreadPool,所以不应该有太多的开销,但我想知道是否有人在高流量网站上的类似场景中实现了这种解决方案并且看得很好从它那里结束了吗?


我希望这样做的原因是我们正在从头开始重新设计我们的应用程序,并且需要确保我们正在构建可以大规模扩展的东西。

2 个答案:

答案 0 :(得分:1)

由于这是ASP.NET,除非您的站点活动较少(这与“将大大缩放”相反),我建议反对这个想法。您的其他本地 CPU已经做得很多,数据库也是如此。我会保持顺序,但是我会想方法在一次点击数据库中获取我需要的所有数据。

答案 1 :(得分:1)

  

我希望这样做的原因是我们正在从头开始重新设计我们的应用程序,并且需要确保我们正在构建可以大规模扩展的东西。

扩展并不一定意味着使用多线程应用程序,我认为您应该考虑使用Web服务器/ RAM / CPU电源等来支持增加的负载。

您应该考虑 使可扩展 足以支持您的业务变更。

是的,据我所知,您可以使用自己描述的技术大部分时间工作