O anda çalışmakta olan uygulamaların durumlarını gözleyen bir service yazmamız gerektiğinde, gözlediğimiz uygulamanın kullanıcıya yanıt verip-vermediğini bulabilmemiz gerekir.
Bunu .Net Framework‘teki Process sınıfının üyeleri ile kolaylıkla yapabiliriz.
Process Sınıfı
Process sınıfı System.Diagnostics namespace‘i içerisinde yeralır. Process sınıfı birçok static ve instance üyeye sahiptir. Bu üyeler sayesinde, lokal bilgisayardaki veya uzak bilgisayardaki herhangi bir uygulamaya müdahele edebilirsiniz. Ayrıca Process sınıfı ilgili uygulamanın “çalıştığını” veya “yanıt vermiyor” durumuna düştüğünü de belirleyebilir.
Bu özellik, uygulamaları monitör eden bir service geliştirecekseniz çok kullanışlıdır.
Bu yazıda, basit bir console uygulaması ile bilgisayardaki “yanıt veren” ve “yanıt vermeyen” uygulamaları listeleyeceğiz.
Öncelikle System.Diagnostics namespace‘ini kod’umuzun using kısmına ekleyelim;
using System.Diagnostics;</pre>
Bilgisayarda o anda çalışan uygulamaları Process sınıfının GetProcesses() method’undan Process dizisi olarak alabiliriz;
Process[] p = Process.GetProcesses();
Basit bir döngü ile o anda çalışmakta olan process‘ler arasında dönebiliriz. Sonra tek yapmamız gereken, Process sınıfının statik Responding property’sine bakmak;
if (p.Responding) Console.WriteLine(" yanıt veriyor."); else Console.WriteLine(" yanıt VERMİYOR!");
Uygulamanın kodlarını toparlarsak;
Process[] processes = Process.GetProcesses(); foreach (Process p in processes) { Console.Write(p.ProcessName); if (p.Responding) Console.WriteLine(" yanıt veriyor."); else Console.WriteLine(" yanıt VERMİYOR!"); }
Mayıs ayında olduğu gibi, Haziran ayında da pek boş durmadım.
Bahçeşehir Üniversitesinin son haftasonu XNA - Oyun Programlama seminerini verdim.
Ayrıca BilgeAdam Beşiktaş şubesinde ASP.NET 4.0 ve C# 4.0 üzerine iki tane seminerim oldu.
Etkinliklerim sayfamdan da görebileceğiniz gibi, bu ay gayet dolu geçti.
Bahçeşehir Üniversitesinde 4 haftasonu XNA - Oyun Programlama seminerleri verdim.
Ayrıca SQL üzerine 8 röportaj yaptım.
Buradaki makaleden, uzmantv.com röportajlarımın metinlerine ulaşabilirsiniz.
Bu makaleyi okumadan önce .Net ortamında pattern kavramı makalesini okumanızı öneririm.
Gang of Four‘un tanımladığı hali ile Design Pattern‘ler 3 ana kategori içerisinde gruplanırlar;
Creational Patterns
Structural Patterns
Behavioral Patterns
Takip eden makaleler ile bu design pattern’lerin her birini inceleyeceğiz.
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484