簡體   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