gpt4 book ai didi

java - C# 相当于 Java 的同步 (abc.class)

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:20 25 4
gpt4 key购买 nike

我想知道是否有与以下 Java 代码等效的 C# 代码:

synchronized (abc.class) {
// code here
}

如果没有等效的,那么我如何在 C# 中模拟它?

  • abc 是我在程序中的一个类。
  • abc 属性和方法(其中一些是静态的)可以同时被多个线程访问。

最佳答案

不要挡课!这可能会导致您的代码出现很大的问题。相反,请使用 lock 构造从代码中访问静态资源:

class Abc
{
private static object _resource;
static Abc()
{
_resource = new object();
}

public static void Method1()
{
lock (_resource)
{
// this will run for only one thread at a time
}
}

public static void Method2()
{
lock (_resource)
{
// this will run for only one thread at a time
}
}
}

此外,如果一个线程只需要读取资源而不写入资源,则可以使用 ReadWriteLock(Slim) 进行同步。

关于java - C# 相当于 Java 的同步 (abc.class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42666553/

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