/// <summary>
/// 订单助手
/// </summary>
class OrderIdHelper
{
private static readonly object Locker = new object();
private static string _tempId = "";
/// <summary>
/// 生成订单编号
/// </summary>
public static void GenerateId()
{
lock (Locker) //lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区。
{
var orderId = "Wen" + DateTime.Now.ToString("yyyyMMddHHmmss"); //年月日时分秒
if (string.Equals(_tempId, orderId))
{
throw new Exception("订单号重复!");
}
_tempId = orderId;
Console.WriteLine(orderId);
}
}
}
class Program
{
static void Main(string[] args)
{
//创建包含两个线程的数组
var threads = new Thread[2]
{
new Thread(OrderIdHelper.GenerateId),
new Thread(OrderIdHelper.GenerateId),
};
foreach (var thread in threads)
{
//线程启动
thread.Start();
}
Console.Read();
}
}
/// <summary>
/// 订单助手
/// </summary>
public class OrderHelper
{
/// <summary>
/// 防止创建类的实例
/// </summary>
private OrderHelper() { }
private static readonly object Locker = new object();
private static int _sn = 0;
/// <summary>
/// 生成订单编号
/// </summary>
/// <returns></returns>
public static string GenerateId()
{
lock (Locker) //lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区。
{
if (_sn == int.MaxValue)
{
_sn = 0;
}
else
{
_sn++;
}
Thread.Sleep(100);
return "Wen" + DateTime.Now.ToString("yyyyMMddHHmmss")+ _sn.ToString().PadLeft(10, '0');
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有