`
niunan
  • 浏览: 719077 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

c#中lock的使用(用于预约超出限额的流程)

 
阅读更多

一个项目,预约系统,核心二张表:预约表,预约限额表

用户点击预约按钮后,

1. 先select 预约限额表把该预约时间段的限额取出来, 

2. 再select 预约表把该预约时间已经预约上的次数算出来

3. 第一步减第二步,得到是否还能进行预约,大于0就可以预约了

4. 第三步里大于0的话就insert 预约表

之前的代码都是用ado.net+sql语句执行的,然后在正式运行的时候,每天18点可以进行预约,然后我设置了某一时间段是可以预约1个,

结果在18点的时候N个人点了预约,导致计算出预约数后想插入之前,另一个人又来计算预约数了,导致超出限额了

问了下网友,给了三种解决方案:

1. redis

2. c#里的lock

3. c#里的ConcurrentQueue

 

自己 测试了一下,用第二种 ,成功了,

 

第三种的话网友也给了个示例:

分享到:
评论

相关推荐

    C#实操控制并发之Lock和Redis分布式锁

    本文将深入探讨C#中如何使用Lock和Redis分布式锁来解决并发问题,以秒杀系统为例进行阐述。 首先,让我们理解什么是并发控制。并发控制是指在多线程环境下确保数据的一致性和完整性,防止多个线程同时访问同一资源...

    C#中volatile与lock用法

    本文实例讲述了C#中volatile与lock用法,分享给大家供大家参考。具体分析如下: 一、C#中volatile volatile是C#中用于控制同步的关键字,其意义是针对程序中一些敏感数据,不允许多线程同时访问,保证数据在任何访问...

    C# lock一个简单实例

    这个示例代码展示了如何在C#中使用`lock`语句来确保线程安全,这对于理解并发编程至关重要。 ### C#中的`lock`关键字 `lock`关键字是C#中用于实现互斥访问共享资源的一种同步原语。在多线程环境中,多个线程可能...

    C#中lock用法详解

    在C#编程中,`lock`关键字是一种同步机制,它用于多线程环境,确保同一时间只有一个线程能够执行特定的代码块。`lock`的关键作用在于防止竞态条件,即多个线程同时访问和修改同一资源导致的不一致性。下面我们将深入...

    看看C#中用lock关键实现同步的原理

    看看C#中用lock关键实现同步的原理, 虽然不长,但是很有用

    C# OA流程、绘制流程图DEMO

    通过这个DEMO,开发者可以了解到如何在C#环境下使用GDI+进行流程图的绘制,并理解如何结合OA流程的业务逻辑来构建一个完整的流程图系统。这是一个极好的起点,有助于开发者进一步开发功能丰富的OA系统。

    C#流程图绘制(Netron Light)

    标题中的"C#流程图绘制(Netron Light)"是指一个基于C#编程语言开发的用于绘制流程图的软件工具。Netron Light是由一位国外开发者创建的,它为用户提供了便捷的方式来可视化和设计流程、系统架构或者任何需要表示...

    描述C#多线程中lock关键字的使用分析

    本文介绍C# lock关键字,C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。每个线程都有自己的资源,但是代码区是共享...

    C# 画流程图

    在本文中,我们将深入探讨如何使用C#编程语言来创建一个流程图软件,这将基于提供的标题和描述。C#是一种强大的、面向对象的编程语言,由微软开发,广泛应用于Windows平台上的应用程序开发,包括GUI(图形用户界面)...

    .NET 工作流程图 WinForm gdi+流程图 C#版流程图绘制 拖动即时刷新 0分下载

    在C#中,我们可以使用GDI+的`DrawLine`方法绘制线条,用`FillRectangle`填充形状,而`DrawString`则用于在图形上添加文本。 此资源中的代码很可能包含了以下关键组件: 1. **图形对象**:创建`Graphics`对象以在...

    C#流程图编程演示(用GDI+实现鼠标绘制流程图的Demo)

    在本项目"C#流程图编程演示(用GDI+实现鼠标绘制流程图的Demo)"中,我们探讨了如何使用C#编程语言结合GDI+库来创建一个交互式的流程图编辑器。GDI+是.NET Framework中用于图形绘制的基础组件,它提供了丰富的图形绘制...

    C#键盘控制 迷你笔记本无CapsLock指示灯 C#编程解决方案DELLCapsExpress1.2Beat

    C#作为一种广泛使用的面向对象的编程语言,具有丰富的库和API,可以方便地实现系统级的键盘控制功能。 首先,让我们了解一下CapsLock键。 CapsLock,全称是大写锁定键,是键盘上的一个功能键,它的主要作用是切换...

    C#医院挂号系统源码.zip

    在代码实现过程中,C#的类库如Entity Framework用于数据访问,ASP.NET MVC或Core MVC负责Web应用程序的架构,而AJAX技术则可能被用于提升用户体验,实现页面无刷新交互。 此外,为了保证系统的稳定性和安全性,...

    C#常用工业控件及使用方法

    在C#编程中,工业控件是用于创建专业级别的工业应用界面的重要元素。这些控件通常包括模拟仪表、按钮、表格、数据可视化组件等,能够帮助开发者构建出符合工业环境需求的用户界面。本篇文章将深入探讨C#中常见的工业...

    C#WPF流程图开发含源代码

    在本文中,我们将深入探讨如何使用C#和WPF(Windows Presentation Foundation)技术来开发流程图应用程序,并结合提供的源代码进行学习。C#是Microsoft .NET框架的主要编程语言,而WPF则是.NET Framework的一部分,...

    C# 中英文转换

    在C#编程中,进行中英文转换是一项常见的需求,特别是在开发多语言支持的应用程序时。本文将深入探讨如何在C#环境中实现这一功能,并提供一个实际的案例。 首先,我们需要理解的是,中英文转换主要涉及字符编码的...

    教室及会议室预约系统(C#小程序,课堂作业)

    【教室及会议室预约系统】是一种基于C#编程语言开发的小应用程序,主要目的是为了方便学生、教师或工作人员在校园环境中高效地预订和管理教室与会议室资源。这个系统是作为课堂作业来设计和实现的,旨在锻炼学生的...

    C#中使用MONITOR类LOCK和MUTEX类来同步多线程的执行[归纳].pdf

    C#中使用MONITOR类LOCK和MUTEX类来同步多线程的执行[归纳].pdf

    C#.NET+XML流程图组件

    .NET+XML流程图组件(C#): 对NET与VS的支持 可将流程图存为XML文件 不只是流程图开发,任何种类的图形设计器都可以开发 内置大量的数据结构算法 功能非常强大都是2D模型,不支持3D建型模

    C#图片上传,用于winform,带图片预览

    在C#编程环境中,开发一个用于WinForms应用的图片上传功能是一项常见的任务,尤其是在构建具有用户交互界面的应用程序时。这个功能通常会结合文件选择、图片预览以及上传操作,为用户提供直观且易于使用的体验。以下...

Global site tag (gtag.js) - Google Analytics