2009-01-07 15 views
7

Gdi fırçaları ve kalemleri oluşturmak ne kadar pahalı? Bunları ihtiyaç duydukları bir ekte oluşturmalı ve bunları bir düzende sarmalı mıyım? Bu yüzden hızlı bir şekilde elden çıkarılmalı mıyım yoksa System.Drawing.Brushes sınıfına benzer bir statik sınıf oluşturmalı mıyım?Fırça ve Kalem Kullanma Talimatları

cevap

5

IMO, onlar yerine yeni oluşturmak yerine, genellikle birkaç yöntem görüşmeleri üzerinden kullanılan uzun ömürlü örneklerini oluşturmak gerektiğini yeterince verimli, ancak belirli bir yönteme içinde sadece bir kez, her biri oluşturması gerektiğini yeterince verimsiz konum Her seferinde bir şey çizmeniz gerekiyor. Başka bir deyişle, her OnPaint numaralı aramayı metninizi boyamak için kullandığınız sınıftaki özel bir fırçayı saklamayın, ayrıca bu OnPaint çağrısı içinde çizdiğiniz her metin satırı için yeni bir fırça oluşturmayın. ya da.

2

Bir web uygulamasında statik bir fırçayla yük altında özel resim çekmeye çalışırken istisnalarla karşılaştım.

Teknik nedenleri bilmiyorum, ancak Fırçalar ve Kalemler iplik güvenli değil, bu yüzden onları gerektiği gibi güvenli bir şekilde oluşturmak ve bu kapsamda, muhtemelen bir kullanarak.

1

Yapılandırılabilir GUI'miz için, kontrollerimizi çizerken bunları bir "kullanma" (gerektiği zaman yeniden oluşturma) içine koymaya çalıştık ve gerektiğinde optimize edeceğimizi düşündük.

Gerekli değildi.

WinCE, WinCE üzerinde genellikle masaüstünde biraz yavaş olabilecek şeyleri göstermek için iyi bir şey anlamına gelir (yansıma örneğin WinCE'de çok daha pahalı hissedilir), bu nedenle masaüstünde bazı deli görüntü manipülasyonu yapmadığınız sürece mucho perf sonra bence bunları gerektiği kadar iyi oluşturmalısınız. Fırçaları kullanarak IIRC

. GDI'daki koleksiyon, iplik güvenliği konusunda emin olmamasına rağmen, önbelleklenip bertaraf edilmelerini sağlayan bir seçenek olabilir.