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

  • EminemMusic

    EminemMusic

    9 ŞUBAT 2007
  • KarnasCamillo

    KarnasCamill

    24 EKİM 2007
  • tsweeney79

    tsweeney79

    21 Ocak 2008