是否有特定的设计模式来帮助管理外部连接和并发请求?

时间:2013-02-27 20:58:28

标签: c# multithreading design-patterns

我目前正在使用外部API来处理Web应用程序。当用户单击按钮时,我打开连接,进行适当的呼叫,然后关闭连接。这样可以正常工作,但是,在多线程Web环境中,当有两次同时点击时,应用程序崩溃......这是由连续调用的紧密连接引起的。

理想情况下,我想在第一个请求上打开一个连接,然后进行所有调用..如果并发请求进来,并且它看到有一个打开的连接,那么它应该使用它..那么连接应该只有在当前没有请求处理时才会关闭。

我开始研究一些代码来实现我想要的东西,但我想知道是否有任何人知道要解决这个问题的特定设计模式,或者是否有人有任何建议..谢谢!!

2 个答案:

答案 0 :(得分:0)

我猜你正在寻找locking 我不知道头顶上是否有合适的图案。

答案 1 :(得分:0)

1-为每个请求建立新连接的成本有多高?

2 - 图书馆作者是否发布了限制连接数量的指导方针?     如果没有那么通过不在您的设计或多线程中引入锁定将真正有用。

这是我在深入研究多线程场景之前向自己提出的最初问题。

同样在上面你解释过的情况下,你永远无法确定下一个请求何时到来,所以如果你使用该类的单个对象那么使用维基百科中解释的双重检查锁定技术会很有帮助

Double Check Locking