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

  • How to Cook ?

    How to Cook

    31 Ocak 2007
  • TheJoeycool2010

    TheJoeycool2

    12 Temmuz 2010
  • UsherVEVO

    UsherVEVO

    15 EKİM 2009