小编Sha*_*hay的帖子

使用Microsoft.CodeAnalysis.FxCopAnalyzers nuget优于默认的托管二进制分析规则集有什么好处?

我目前使用Managed Binary Analysis,看起来nuget添加了相同的规则(可能更少).

我也使用这个SonarQube插件:https://github.com/SonarQubeCommunity/sonar-fxcop.

准确的是什么?

.net fxcop software-quality analyzer

10
推荐指数
1
解决办法
2024
查看次数

在那些简单的情况下使用 C# 锁有用吗?

在多线程环境中,锁定对线程敏感的资源很重要。我经常假设集合等是线程不安全的,具体取决于 MS 文档,但简单类型是否也是线程敏感的?

让我们举个例子。锁定 int 属性访问是否有用,例如

public int SomeProperty
{
    get
    {
        lock (_lock)
        {
             return _value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

或者是一个足够普通的吸气剂,即

public int SomeProperty => _value;
Run Code Online (Sandbox Code Playgroud)

据我了解,一个简单的字段读取是线程安全的,但我仍然在网上和一些代码库中看到第一个例子。

第二个问题,单行指令中的值是顺序读取还是同时读取?换句话说,我这样做时是否需要锁定

public TimeSpan GetSomeExampleValue()
{
    lock (_lock)
    {
        return _dateTime1 - _dateTime2;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者我可以简单地做

public TimeSpan GetSomeExampleValue()
{
    return _dateTime1 - _dateTime2;
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading locking thread-safety thread-synchronization

-2
推荐指数
1
解决办法
62
查看次数