如何锁定特定的代码片段C#

时间:2016-08-02 15:52:38

标签: c# asp.net locking

我正在一个购物网站上工作,我们只有独特的产品。因此,用户可以同时查看和添加相同的产品到他们的购物车,但是当他们下订单时,无论谁先放置它,都会将相同的商品添加到购物车中。

但是我有一个问题,即如何确保调用时我的下订单代码将被锁定,所有其他请求必须在队列中等待,直到它不完整为止。 我读到了关于锁定关键字但没有太多想法。任何帮助将不胜感激。

以下是我的代码的几个步骤:

步骤1:致电第三方服务以查看该项目是否可用 第2步:如果项目可用,则通过调用第三方服务购买。 步骤3:如果成功购买,则使用标志等更新数据库。

1 个答案:

答案 0 :(得分:4)

您无法可靠地锁定Web服务器上的代码,因为多个Web请求可以在不同的进程中运行(至少在将来升级服务器时)。

相反,您应该确保数据库更改只能成功一次,并为第二个请求正常处理失败。数据库的变化自然而然地#34;原子因此,通过一些智能插入/更新,您的问题就解决了。