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