SORU
16 EYLÜL 2009, ÇARŞAMBA


C# geçmesi ayrı bir konu üzerine mi geliyorsunuz?

Bir Sistem yok.Zamanlayıcılar.Zamanlayıcı oluşturulduğu iş parçacığı dışında ayrı bir iş parçacığı geçecek?

Söylediğim her 5 saniyede bir harekete bir zamanlayıcı ile bir sınıf sağlar. Zamanlayıcıyı harekete geçen bu yöntem, bazı nesne değiştirilir. Bu nesneyi değiştirmek için uzun bir zaman alır diyelim ki, 10 saniye gibi. Bu senaryoda iplik çarpışmalar içine aday olabilecek mi?

CEVAP
17 EYLÜL 2009, PERŞEMBE


Duruma göre değişir. System.Timers.Timer iki çalışma modu vardır.

SynchronizingObject ISynchronizeInvoke bir örnek, o zaman ayarlı ise Elapsed olay iş parçacığı eşitleme nesnesi barındıran yürütülür. Genellikle ISynchronizeInvoke bu örnekleri hiç aşina Control Form düz eski örnekler dışında. Bu durumda Elapsed etkinlik UI iş parçacığı üzerinde çağrılır ve System.Windows.Forms.Timer benzer davranır. Aksi takdirde, gerçekten kullanılan ISynchronizeInvoke belirli bir örnek bağlıdır.

Eğer SynchronizingObject null ise o zaman Elapsed olay ThreadPool bir konu üzerinde çağrılır ve System.Threading.Timer benzer davranır. Aslında, aslında perde arkasında System.Threading.Timer kullanır ve sıralama işlemi yaparsonrazamanlayıcı geri gerekirse alır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MuscleProdigyTV

    MuscleProdig

    8 Ocak 2011
  • newport83

    newport83

    19 HAZİRAN 2006
  • Sorikan

    Sorikan

    3 ŞUBAT 2008