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

  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • Charles Griffin Gibson

    Charles Grif

    26 NİSAN 2006
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011