SORU
12 EYLÜL 2008, Cuma


kilit anahtar kelime C#

Ben msdn'den kilit anahtar kelime ana fonksiyonu anlamak

lock Deyimi (C# Başvurusu)

Kilit anahtar kelime deyimi işaretleri önemli bir bölümü olarak blok tarafından karşılıklı dışlama kilit edinme belirli bir nesne için, bir yürütme ifade ve serbest zaman kilit.

Zaman kilidi kullanılmalıdır?

Örneğin, verileri korumak için bir çok iş parçacıklı uygulamalarla mantıklı. Ama bu uygulama diğer konuları spin off değil ne zaman gereklidir?

Kilit kullanarak performans sorunları var mı?

Sadece her yerde kilit kullanarak bir uygulama miras var ve tek olduğunu dişli ve bunları bırakmalı mıyım bilmek istiyorum, hatta gerekli mi?

Lütfen unutmayın, bu daha genel bir bilgi soru, uygulama hızı iyi, bilmek istiyorum eğer iyi bir tasarım deseni takip geleceğe ya da bu olmaya bilir sürece kesinlikle gerekli.

CEVAP
12 EYLÜL 2008, Cuma


Zaman kilidi kullanılmalıdır?

Kilit çok iş parçacıklı kod, paylaşılan kaynakları korumak için kullanılmalıdır. Başka bir şey için değil.

Ama bu uygulama diğer konuları spin off değil ne zaman gereklidir?

Kesinlikle değil. Sadece bir zaman defolu mal. Ancak örtülü olarak sistem iş parçacığı kullandığınız emin olun. Eğer zaman uyumsuz G/Ç kullanıyorsanız, örneğin rastgele bir iplik, orjinal iplik değil, geri alabilirsiniz.

Kilit kullanarak performans sorunları var mı?

Evet. Tek iş parçacıklı bir uygulamada çok büyük değil, ama neden gerek yok arama yapmak mı?

...gelecekte takip etmek iyi bir tasarım deseni ise[?]

Her şeyi istesekte istemesekte kilitleme korkunç bir tasarım deseni. Kodunuzu rastgele kilitleme ile karışmış ve daha sonra bazı iş için bir arka plan iş parçacığı kullanmak için karar verirseniz, kilitlenmeleri karşılaşmak olasıdır. Birden çok iş parçacığı arasında bir kaynak paylaşımı dikkatli bir tasarım gerektirir ve daha zor kısım, daha iyi ayırabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • LearnCode.academy

    LearnCode.ac

    20 Aralık 2012
  • Moodle

    Moodle

    11 Mayıs 2010