Skip to main content
 首页 » 编程设计

c#之如何锁定一段特定的代码 C#

2024年02月05日31lyhabc

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

但我有一个问题,我如何确保我的下单代码在被调用时被锁定并且所有其他请求必须在队列中等待直到它未完成。 我阅读了有关 lock 关键字的信息,但不太了解。任何帮助将不胜感激。

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

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

请您参考如下方法:

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

相反,您应该确保数据库更改只能成功一次,并为第二次请求优雅地处理失败。数据库更改“自然地”是原子的,因此通过一些智能插入/更新,您的问题就解决了。