gpt4 book ai didi

c# - 如何在静态方法中确保线程安全

转载 作者:行者123 更新时间:2023-11-30 19:47:57 25 4
gpt4 key购买 nike

我是否需要声明一个静态对象并对其使用锁定

private static readonly Object padlock = new Object()

public static Test()
{
lock(padlock) {
// Blah Blah Blah
}

}

最佳答案

(顺便说一下,您的代码目前无法编译 - Readonly 应该是 readonly,您需要给 padlock 一个类型.)

这取决于您在方法中所做的事情。如果该方法不使用任何共享数据,或者以已经安全的方式使用它,那么你没问题。

通常只有在以非线程安全方式访问共享数据时才需要锁定。 (而且所有对共享数据的访问都需要以线程安全的方式完成。)

话虽如此,我应该指出“线程安全”是一个相当模糊的术语。 Eric Lippert 有一个 great blog post关于它……而不是试图提出一种“一刀切”的方法,您应该考虑您要防止什么,您预计会发生什么情况等。

关于c# - 如何在静态方法中确保线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5926393/

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