繁体   English   中英

由Visual Studio自动生成的代码是否是线程安全的?

[英]Is code that's generated automatically by Visual Studio thread-safe?

我正在学习C#。 对不起,新手问题。

这是启动Windows Forms项目时Visual Studio 2015自动生成的某些代码的一部分。 在Form1.Designer.cs中

    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

我试图查看我是否正确理解了线程安全性的概念。 在评估if语句与调用components.Dispose()的时间之间,是否不可能将components设置为null

在此先感谢您对理解此问题的任何帮助!

不,这不是线程安全的代码。 您的假设是正确的,即在check和Dispose之间components 可能为空。

但是,这并不意味着它是错误的代码。 并非所有代码都必须是线程安全的。 如果两个线程都在处理同一个对象,则行为很可能是错误,而不是错误地Dispose

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM