gpt4 book ai didi

c# - 锁定创建 ID 的对象

转载 作者:太空狗 更新时间:2023-10-29 22:26:42 27 4
gpt4 key购买 nike

下面的方法是否可以确保一次只有一个线程可以读取一个 ID?我有一个使用以下方法的并行进程,我需要它返回唯一 ID。不幸的是,我无法更改 ID 的结构方式。

private static int Seq = 0;
private static long dtDiff = 0;
private static object thisLock = new object();
private static object BuildClientID(string Code)
{
lock (thisLock)
{
object sReturn = "";
Seq++;
dtDiff++;
if (Seq == 1000)
{
Seq = 0;
dtDiff = DateAndTime.DateDiff(DateInterval.Second, DateTime.Parse("1970-01-01"), DateTime.Now);
}
sReturn = dtDiff.ToString() + Code + Seq.ToString("000");
return sReturn;
}
}

最佳答案

我看不出有任何理由不这样做。锁对象和方法都是static。您唯一需要确定的是,您是否需要更复杂的锁定形式,例如 MutexSpinLockReaderWriterLock信号量

你需要研究那些,这里是一个 good link to get started .

关于c# - 锁定创建 ID 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19541990/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com