[英]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.