c# - 静态方法和线程

标签 c# multithreading

我在 MSDN 论坛上提出了一个问题,但得到了两个相反的答案。总的来说,我对线程如何与静态类一起工作很感兴趣。如果我的代码同时从 10 个线程调用这个(下面)静态方法,它是线程安全的吗?我的意思是,代码如何在幕后流动?每个线程是否都在其自身内部执行代码(就像我认为它对非静态类所做的那样)或者它与静态方法不同,并且因为它是静态的,所以所有线程都试图到达代码并发生冲突?谢谢!

public static class A
{

    static void Method(object parameter)
    {
       SqlCeConnection = .....
    }
}

MSDN 问题的链接:Here

PS:很抱歉,由于 IE 页面错误,我无法点击“添加评论”或“回答”,Jon Skeet 的回答很好(一如既往:)

最佳答案

它与非静态类完全相同。静态不会真正影响任何东西 - 除了静态方法通常预期是线程安全的。它们不是自动线程安全的,但您应该确保以线程安全的方式实现它们。

如果代码不使用任何共享状态,应该没问题。是的,没有任何锁定,所有线程都可以同时执行相同的方法。

关于c# - 静态方法和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998534/

相关文章:

c# - 需要将 double 打印为 12.20 而不是 12.2

c# - C# 中动态类型的限制

c - 多线程静态变量

java - Swing 应用程序线程被 JNA 锁定

java - 客户端/服务器通信 - 猜我的动物游戏

c# - c#中的按键事件找出按下的键

c# - 导航时 Silverlight NavigationFramework 不更改地址栏(不显示主题标签)

c# - CORBA 的 ASP.Net WebAPI 替代品?

java - 如何处理JavaFX的线程模型和大数据变化

c# - 为什么 GC 在我引用它时收集我的对象?