我在 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/