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

  • kamaniusilelis

    kamaniusilel

    10 HAZİRAN 2011
  • MultiPlayStationMan

    MultiPlaySta

    17 Aralık 2009
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006