有没有重写可以使这个c#类线程安全?

有没有重写可以使这个c#类线程安全?,第1张

概述我喜欢在C#中创建类的快速方法,我们可以轻松地创建成员而无需实现get和set代码,但(据我所知)它们不是线程安全的! public class SocksEntry{ public int Int1 { get; set; } public int Int2 { get; set; }} C#是否提供了一种快速简单的方法来增加线程安全性而无需这样做? public class 我喜欢在C#中创建类的快速方法,我们可以轻松地创建成员而无需实现get和set代码,但(据我所知)它们不是线程安全的!
public class SocksEntry{    public int Int1 { get; set; }    public int Int2 { get; set; }}@H_502_3@  

C#是否提供了一种快速简单的方法来增加线程安全性而无需这样做?

public class SocksEntry{    protected object _lock = new object();    // internal    private int _int1 = 0;    private int _int2 = 0;    // accessors    protected int Int1    {        get { lock (_lock) return _int1; }        set { lock (_lock) _int1 = value; }    }    protected int Int2    {        get { lock (_lock) return _int2; }        set { lock (_lock) _int2 = value; }    }}@H_502_3@  

与非线程安全版本相比,它显然使整个类更大,创建更痛苦!

解决方法 使类线程安全比你想象的要困难得多.将锁定放在getter和setter周围可能是不够的.因此,最佳做法是让类不是线程安全的,并且如果他需要线程安全,则将责任留给此类的使用者以同步对它的访问.如果消费者不需要线程安全,那么很好,你不会因为你在没有需要的情况下将线程安全性构建到类中而惩罚应用程序的性能.为什么你认为.NET中99.99%的类不是线程安全的? 总结

以上是内存溢出为你收集整理的有没有重写可以使这个c#类线程安全?全部内容,希望文章能够帮你解决有没有重写可以使这个c#类线程安全?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1249854.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存