簡體   English   中英

刷子螺紋安全

[英]Brushes thread safety

根據通常的線程安全聲明。

此類型的任何公共靜態(在Visual Basic中為Shared)成員都是線程安全的

這使得Brushes.White線程安全,但不是new SolidBrush(Color.White)

我的第一個問題是,為什么后面的技術區別是什么?

其次,是否可以創建線程安全的簡單畫筆(例如Brushes.White)?

這是所有.NET類的99.9%的樣板文字。 真沒用。 筆刷具有內部不可變字段,在設置筆刷的“顏色”屬性時會對其進行檢查。 與線程無關,它只是防止您更改普通筆刷的顏色(如Brushes.White)。 這當然是很糟糕的。 由於沒有其他屬性可以修改,因此巧合地使股票畫筆具有線程安全性。

奇怪的是,您自己的SolidBrush也是線程安全的,GDI +內置了一些內部鎖定。 例如,您可以讓多個線程繪制到位圖,只要它們是不同的位圖即可。 但是,沒有明確記錄它是線程安全的,因此您需要自己承擔風險。 進行這項運動毫無意義,在創建畫筆后更改畫筆的顏色沒有多大意義。 或為此,有多個線程使用同一筆刷。 畫筆非常便宜,只需一微秒即可創建一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM