c# - 如何以线程安全的方式生成连续的唯一ID

标签 c# multithreading

我调用了多个线程来生成一个数字,但我想为所有线程生成一个唯一的“否”,(假设一个线程生成一个“否”,即 ABC1,但第二个线程必须生成 ABC2 等等)

最佳答案

您可以使用Interlocked.Increment,它将完成计数器上的线程安全增量。

public class Person
{
    private static int _counter;

    public string GetNewId()
    {
        int id = Interlocked.Increment(ref _counter);
        return $"ABC{id}";
    }
}

关于c# - 如何以线程安全的方式生成连续的唯一ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53113423/

相关文章:

c - 锁定实际上是如何工作的

c# - 如何在 ASP .NET Core 中生成和管理 API key

c# - ExecuteNonQueryAsync sql 命令为 SP 提供 DB 中的多个参数集

c# - 如何从另一个窗体调用多个方法 C#

java - Java 中的多线程任务仅在 onClick Button 时工作一次

c - PThread 地址空间

java - 使用 JUnit 对 Java 中 Daemon Thread 的代码进行单元测试

java - 在 Java 中编写互斥锁

c# - 清除后不返回 PasswordBox 占位符文本

c# - 将相同的对象保存在不同的表中