gpt4 book ai didi

c# - 使用 DateTime.Now.Ticks 生成唯一的数字 ID

转载 作者:可可西里 更新时间:2023-11-01 07:54:51 24 4
gpt4 key购买 nike

我需要生成一个唯一的数字 ID 以附加到传入请求。此 ID 仅临时用于跟踪请求,一旦请求完成处理将被丢弃。此 ID 将仅在该应用程序的上下文中使用,但需要以高性能多线程方式分配。

我正在考虑将 DateTime.Now.Ticks 用于此 ID,但想知道如果同时处理同时请求,DateTime.Now.Ticks 是否仍会生成冲突 ID?

如果有人可以建议一种在多线程环境中生成这些 ID 的更好方法(最好是不是像 Tick 那样的 Int64 的方法),请告诉我。像递增数字这样简单的东西就足够了,只要我不必在递增之前锁定数字即可。

最佳答案

您只需要使用一个静态变量,每次您需要另一个唯一值时该变量都会递增。您可以使用 Interlocked.Increment 使此线程安全且仍然非常快方法...

// Declaration
private static int safeInstanceCount = 0;

// Usage
{
...
Interlocked.Increment(ref safeInstanceCount);
...
}

关于c# - 使用 DateTime.Now.Ticks 生成唯一的数字 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7576982/

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