Yazar Bilgileri

Bora Taşhan

1980 Ankara doğumlu olan Bora Taşhan şu anda Turpak Elektro Manyetik Yakıt İkmal Sistemleri A.Ş. de Senior Developer olarak çalışmaktadır.

   
   
Puan: 3 / 5

Threading uygulamalarda program içerisinde yarattığınız işçi threadleri askıya almanız ya da durdurmanız gerekecektir. .net framework 2x ile birlikte thread askıya alma ve geri çalışır duruma getirme metotları olan Thread.Suspend() ve Thread.Resume() iptal(deprecated) edilmiştir. Bunun yerine daha önceki örneklerde görülen senkronizasyon nesneleri ve sizin kontrol edeceğiniz durum bayrakları kullanılacaktır. Zaten dikkat ederseniz Windows forms ve threading örneğinde “TerminateThreads” ve “mrEvent” ile threadlerin işlemden çıkıp çıkmayacaklarını yada askıda kalıp kalmayacaklarını kontrol ediyorduk. Bu sebepden thread durdurma metodları olan Interrupt() ve Abort() metotlarını inceleyeceğiz.

Devamı
Puan: 4 / 5

Net framework içerisinde threading mekanizmasını geliştireceğiniz arayüz ile birlikte kullanabilir ve thread içerisinde çalışan kodunuzun sonuçlarını ya da aşamalarını arayüz içerisinde gösterebilirsiniz. Örneğin dosya sistemi(file system) üzerinde arama yapan bir programınızın olduğunu düşünün. Eğer multithreading kullanmaz iseniz program dosyaları ararken program arayüzünüz donacak (freeze) ve işlem bitene kadar kullanılamaz halde kalacaktır. Her ne kadar arada uygulamanızın kendisine gelen mesajları işlemesi için metotlar kullanıp bu sorunun önüne geçsenizde uygulamanız yinede tam manası ile düzgün çalışmayacaktır. İşte bu gibi durumlarda arayüz içerisinde threding mekanizması kullanmalısınız. Diğer örneklerde hatırlayacağınız gibi arayüzünüz ana thread içerisinde çalışmaya devam ederken yaratacağınız işçi threadler vasıtası ile hem aynı sürede daha fazla iş yapabilir hemde kullanıcının uygulama ile iletişimini kesintiye uğratmazsınız.

Devamı
Puan: 4 / 5

Artık multithreading uygulamalarda bizlere daha fazla esneklik getiren nesne ve metodlarını inceleyebiliriz. Önceki örneklerde gördüğünüz üzere uygulamamızda sadece bizim çalışmamız gereken yerler için kilit alma ve serbest bırakma mekanızmalarını kullandık. Peki, eğer kilit almak istediğimiz nesne üzerinde zaten kilit mevcutsa ve bu kilidi beklemek istemiyorsak ne yapabiliriz. Bu durumda Monitor.TryEnter() metodunu kullanabiliriz.

Devamı
Puan: 4 / 5

Kısaca Multithreading programcıların uygulama geliştirirken yazdıkları kod parçalarını eş zamanlı olarak sistem üzerinde çalıştırabilme mekanizmasına denir. Bu mekanizma sayesinde uzun zaman gerektiren işlemlere kullanıcının bilgisayar ile iletişimi kesintiye uğramadan ya da uzun süreli çalışması gereken uygulamanın o an işletim sistemi üzerinde koşan diğer uygulamaları engellemeden arka planda çalışabilme özelliği katılır. Örneğin oldukça uzun süren bir raporu ayrı bir thread içerisine aldığınızda rapor arka planda hazırlanırken kullanıcı kullandığı uygulama içerisinde işlemlere devam edebilir.

Devamı
   
   
İpucu bulunamadı.

Site içerisinde yazılan tüm makalelerin yazım ve yayınlama hakkı aksi belirtilmediği sürece sadece yazarlara aittir.

v3.0 Geri Bildirim (Feedback) Yazgelistir.Com Ekibi - 2012 - Yazgelistir.com