>
Dummies Guide to Google Blogger Beta


Translate to EnglishTranslate to GermanTranslate to ItalianTranslate to GreekTranslate to FrenchTranslate to PolishTranslate to RussianTranslate to SpannishTranslate to UkrainiaTranslate to BulgarianTranslate to DutchTranslate to FinnishTranslate to IndianTranslate to JapaneseTranslate to NorwegianTranslate to Portugese
 
ozgurcebilgiedin & programindir.forums8.com
 
  DRİVER İNDİR
  Link listesi
  ÜYE OL
  Ziyaretçi defteri
  BEDAVA PROGRAM SERİAL NUMARALARI
  POP-UP EDİTÖR
  HTML TANIMLARI
  PHP MySQL SORGU TÜRLERİ
  TABLET PC NEDİR
  CNC MAKİNALAR
  CNC NEDİR
  CNC PROGRAM YAZMA
  İLGİNÇ BİLGİLER
  TAZEBAMA.DLL
  WİNDOWS 7 SİSTEM KURTARMA RECOVERY DİSC
  OSMANLI İMPARATORLUĞU'NU YÖNETEN PADİŞAJLAR
  WİNDOWS XP ANLAMI NEDİR
  DÜNYA NÜFUSU
  BARKOD NEDİR? ÇALIŞMA ESASLARI
  GÖKYÜZÜ NEDEN MAVİDİR?
  BİLGİSAYAR KISA YOLLARI
  ASGARİ GEÇİM İNDİRİMİ HESAPLAMA
  FİLM KAYNAKLARIVE FORMATLARI
  SİSTEM GERİ YÜKLEME NASIL YAPILIR
  BİLGİSAYARINIZI BAŞKA BİRİNİN YÖNETTİĞİNDENMİ KUŞKULANIYORSUNUZ?
  İNTERNET TERİMLERİ ve ANLAMALARI
  PRATİK BİLGİLER
  ÇEŞİTLİ PROGRAMLAR
  BİLGİSAYAR TEKNİK İP UÇLARI
  WİNDOWS XP NASIL FORMAT ATILIR RESİMLİ ANLATIM
  WİNDOWS VİSTA NASIL KURULUR
  WİNDOWS 7 FORMAT NASIL ATILIR
  WİNDOWS DOS KOMUTLARI
  C# KOMUT SATIRI DERLEYİCİ(CSC.EXE) VE PARAMETRELERİ
  KOMUT SATIRI NEDİR?
  REGEDİT KOMUTU İLE UZAK KULLANICILARA BAĞLANMAK
  ADMİNPAK.MSI
  MİCRASOFT ISA SERVER NEDİR NASIL KULLANILIR NASIL ÇALIŞIR
  UZAK MASA ÜSTÜ BAĞLANTISI NEDİR NASIL KURULUR?
  WİNDOWS 2003 SERVER KURULUMU NASIL YAPILIR
  WİNDOWS 2003 ACTİVE DİRECTORY KURULUMU
  WİNDOWS 2003 ACTİVE DİRECTORY KULLANICI VE GURUP HESAPLARI OLUŞTURMAK
  WİMDOWS XP'NİN ETKİ ALANINA KATILMASI(DOMAİNE)
  WİNDOWS 2003 XP ÜZERİNDE KOTA UYGULAMA
  WİNDOWS 2000 VE WİNDOWS XP HESAP YÖNETİMİ
  WİNDOWS XP SERVİSLERİ VE YAPTIKLARI İŞLEMLER
  WİNDOWS SERVİSLERİ NASIL ÇALIŞIR VE YÖNETİLİR
  ACTİVE DİRECTORY HİZMETİ VE AVANTAJLARI NELERDİR
  FTP NEDİR(FİLE TRANSFER PROTOCOL)NASIL YAPILIR
  DHCP NEDİR KISACA NASIL ÇALIŞIR
  GİZLİ TEHLİKE ROOTKİT NEDİR ROOTKİTLERLE NASIL MÜCADELE EDİCEZ
  İNTRANET NEDİR İNTRANET KULLANMANIN AVANTAJLARI
  KURUMSAL ANTİVİRÜS PROGRAMI SEÇERKEN DİKKAT EDİLMESİ GEREKENLER
  KÜÇÜK VE ORTA ÖLÇEKLİ FİRMALAR VE OFİSLERDE GÜVENLİK
  LİNUX NEDİR?
  MS-DOS(MİCRASOFT DİSK OPERATİON SİSTEM)NEDİR?
  NOVELL NETWARE NEDİR?(ESKİ NOVEL SİSTEMİ HAKKINDA TANITICI BİR YAZI)
  PROXY NEDİR NE İŞE YARA?
  SUNUCU NEDİR NEDEN SUNUCULAR VARDIR SUNUCU İŞLETİM SİSTEMLERİ NELERDİR
  TELNET NEDİR NE İŞE YARAR?
  UNİX NEDİR
  IPCONFİG KOMUTUNUN PARAMETRELERİ
  ÇEŞİTLİ ÜLKELERİN İLGİNÇ YANLARI
  TÜRKİYE CUMHURİYETİ ANAYASASI
  4857 SAYILI İŞ KANUNU
  DİSKLERDE VERİLERİN DEPOLANMA MANTIĞI VE VERİ KURTARMA
  GPS İLE KOORDİNAT BELİRLEME
  İSKİ-UKBS SABİT GNSS İSTASYONLARI
  GPRS NEDİR NASIL KOORDİNAT BULUNUR
  IP KAMERA NEDİR
  GTK NEDİR
  DOSYA UZANTILARI VE ANLAMLARI
  USB NEDİR
  ASCİİ KODLARI
  SİTEMAP
  KART MONTAJI
  İLK BİLGİSAYARLAR
  HTTP NEDİR
  C İLE C++ ARASINDAKİ FARKLAR
  DELPHİ İP UÇLARI
  WİRELESS NETWORK NEDİR
  PORT NEDİR
  BİLGİSAYARA VİRÜS NASIL BULAŞIR
  ÜYELİK FORMU
  HTML RENK KODLARI
  WEB SAYFASI
  MORS ALFABESİ
  BRAİLLE ALFABESİ NEDİR
  RAM NEDİR
  HARD DİSK (HDD) NEDİR
  MONİTÖR
  SES KARTI NEDİR
  İŞLEMCİ NEDİR
  HTML DERSİ2
  BİLGİSAYAR SORUNLARI
  EN ÇOK RASTLANINAN BİLGİSAYAR SORUNLARI
  PROBLEMLER VE ÇÖZÜMLERİ
  GÖREV YÖNETİCİSİNDE ÇALIŞAN ZARARLI DOSYALAR
  DRİVER
  SQL GÖRSEL DERSLER
  C#.NET HAKKINDA BİLGİ
  EXCEL İLE PROGRAM YAZMA
  CRACK NASIL YAPILIR
  Full Tek Link Program İndir
  Forum
© Copyright 2010|2014 ozgurcebilgiedin tüm hakları saklıdır.
C#.NET HAKKINDA BİLGİ
  • Paralel Programlamada İstisna Yönetimi

    Task örneklerinin kullanıldığı senaryolarda, bloklar içerisinde yer alan işlevselliklerin doğurabileceği çalışma zamanı istisnalarını ele almak, son derece önemlidir. Nitekim paralel çalışmakta olan blokların beklenmedik bir şekilde sonlandırılması söz konusudur. İşte bu yazımızda Task örnekleri içerisinde oluşabilecek istisnaların nasıl ele alınabileceğini incemelye çalışıyor olacağız.

    Wait, WaitAll, WaitAny Tetikleyicileri

    Bir veya daha fazla Task örneği tarafından başlatılan paralel işleyişlerde, bekletme metodlarının çağırılması halinde, ortama fırlayabilecek Exception örneklerinin yakalanması mümkündür. Aşağıdaki kod parçasında 3 farklı Task bloğu için bir istisna senaryosu ele alınmaya çalışılmıştır.

    using System;
    using System.IO;
    using System.Linq;
    using System.Threading.Tasks;

    namespace HandlingExcpetions
    {
    class Program
    {
    static void Main(string[] args)
    {
    Task task1 = new Task(() =>
    {
    File.Open("C:OlmayanDosya.txt", FileMode.Open);
    }
    );
    Task task2 = new Task(() =>
    {
    string number = "oniki";
    double point = Convert.ToDouble(number);
    }
    );
    Task task3 = new Task(() =>
    {
    for (int i = 0; i < 100; i++)
    {
    i++;
    i--;
    i *= 1;
    Console.Write(".");
    }
    }
    );

    task3.Start();
    task2.Start();
    task1.Start();

    try
    {
    Task.WaitAll(task1, task2, task3);
    }
    catch (AggregateException agrExcp)
    {
    Console.WriteLine("nOluşan istisnalar");
    var excpInfos = from e in agrExcp.InnerExceptions
    select new
    {                       
    e.TargetSite,
    e.Message,
    InnerException=e.InnerException!=null?e.InnerException.Message:"InnerException bilgisi yok"
    };
    foreach (var excp in excpInfos)
    {
    Console.WriteLine("n{0}n{1}n{2}",excp.Message,excp.InnerException,excp.TargetSite);
    }
    }
    }
    }
    }

    Örnek kod parçasında 3 farklı Task örneği oluşturulduğu görülmektedir. Task1 içerisinde sistemde olmadığı düşünülen bir dosya açılmaya çalışılmaktadır. Task 2 ile alakalı blok içerisinde ise, metinsel bir ifadenin sayısal dönüştürülmesi söz konusudur. Task 3 ile ilişkili kod bloğunda ise herhangibir istisna durumu söz konusu değildir. Örnek uygulamayı çalıştırdığımızda aşağıdaki ekran görüntüsünde yer alan çalışma zamanı çıktısı ile karşılaşırız.

    Burada dikkat edilmesi gereken noktalardan birisi, Task 1 ve Task 2 içerisinde oluşan istisnaların Task 3’ ün başlattığı bloğun çalışmasını etkilememesidir. Diğer yandan oluşan istisnaların tamamı, AggregateException tipinin InnerExceptions özelliği içerisinde toplanmaktadır.

    Aslında try…catch bloğu içerisine yer alan Task.WaitAll metodu çağrısı ile, tüm Task örneklerinin işleyişleri bitene kadar, bu işleyişlerin sahibi olan Main Thread’ in duraksatılması sağlanmaktadır. WaitAll metodunun try…catch bloğu içerisine olması nedeniyle de, tamamlanması beklenen Task bloklarında oluşan istisnalar, AggregateException tarafından toplanmatadır. Eğer catch bloğu içerisinde breakpoint konularak durulur ve yerel değişkenlere bakılırsa, aşağıdaki ekran görüntüsünde yer alan sonuçlar ile karşılaşılır.

    Burada dikkat edilmesi gereken en önemli noktalardan birisi de, Task örneklerinin Status özelliklerinin değerleridir. Dikkat edileceği üzere task1 ve task2 isimli örnekler Faulted durumunda kalmışlardır. Bu değerler, uygulamalarda olup biten herşeyi tutan log mekanizmaları için veya iş sürecinin akan diğer kısımları için önemlidir. Çok doğal olarak task3 örneğinin durumu RanToCompletion olarak kalmıştır. Yani başarılı bir şekilde işleyişini tamamlamıştır. Gelelim diğer bir mevzuya…

    AggregateException Nesne Örneğine Üzerinden Handle Metodunun Kullanılması

    AggregateException nesne örneği üzerinden erişilebilen Handle metodu ile, Task örneklerine ait bloklar içerisinde oluşacak istisnalar arasında dolaşılabilmektedir. Özellikle n sayıda Task bloğunun takip edildiği durumlarda, beklenen bir istisnanın oluşması halinde nasıl hareket edileceğine karar vermek için kullanılabilecek yollardan birisidir.

    Bu metod parametre olarak Func<Exception,bool> tipinden bir Temsilci(Delegate) almaktadır. Buna göre hangi istisnanın ele alınmak istediği ilk parametre ile belirtilmektedir. Diğer yandan söz konusu temsilci geriye bool değer döndürecek şekilde ayarlanmıştır. Bu değer spesifik olarak belirlenen istisnanın/istisnaların ele alınması halinde true olmalıdır. Handle kullanımını daha iyi kavrayabilmek adına aşağıdaki örnek kod parçasını göz önüne alalım.

    using System;
    using System.IO;
    using System.Linq;
    using System.Threading.Tasks;

    namespace HandlingExcpetions
    {
    class Program
    {
    static void Main(string[] args)
    {
    Task task1 = new Task(() =>
    {
    File.Open("C:OlmayanDosya.txt", FileMode.Open);
    }
    );
    Task task2 = new Task(() =>
    {
    string number = "oniki";
    double point = Convert.ToDouble(number);
    }
    );
    Task task3 = new Task(() =>
    {
    for (int i = 0; i < 100; i++)
    {
    i++;
    i--;
    i *= 1;
    Console.Write(".");
    }
    }
    );

    task3.Start();
    task2.Start();
    task1.Start();

    try
    {
    Task.WaitAll(task1, task2, task3);
    }
    catch (AggregateException agrExcp)
    {
    agrExcp.Handle(e =>
    {
    if (e is FileNotFoundException)
    {
    Console.WriteLine("Dosya bulunamadı");
    return true;
    }
    else if (e is FormatException)
    {
    Console.WriteLine("Dönüştürme hatası");
    return true;
    }
    else
    return false;
    }
    );
    }
    }
    }

    Bir önceki örnekte yer alan senaryonun aynısı söz konusudur. Ancak bu kez catch bloğu içerisinde Handle metodu kullanılmıştır. Handle ile işaret edilen blokta, e ile temsil edilen referansın olası değerleri kontrol edilmektedir. FileNotFoundException veya FormatException olması halleri ele alınmıştır. true döndürdüğümüz yerlerde, oluşan istisnai durumların geliştirici tarafından ele alındığını ifade edilmektedir. Program kodunun çalışma zamanı çıktısı aşağıdaki gibi olacaktır.

    Tabi burada dikkat edilmesi gereken ayrı bir durum daha vardır. Olaya 4ncü bir Task örneğini daha kattığımızı düşünelim ve kodumuzu buna göre aşağıdaki gibi düzenleyelim.

    using System;
    using System.IO;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Data.SqlClient;

    namespace HandlingExcpetions
    {
    class Program
    {
    static void Main(string[] args)
    {
    Task task1 = new Task(() =>
    {
    File.Open("C:OlmayanDosya.txt", FileMode.Open);
    }
    );
    Task task2 = new Task(() =>
    {
    string number = "oniki";
    double point = Convert.ToDouble(number);
    }
    );
    Task task3 = new Task(() =>
    {
    for (int i = 0; i < 100; i++)
    {
    i++;
    i--;
    i *= 1;
    Console.Write(".");
    }
    }
    );
    Task task4 = new Task(() =>
    {
    SqlConnection conn = new SqlConnection("data source=.;database=Maybe;integrated security=sspi");
    conn.Open();
    }
    );

    task3.Start();
    task2.Start();
    task1.Start();
    task4.Start();

    try
    {
    Task.WaitAll(task1, task2, task3,task4);
    }
    catch (AggregateException agrExcp)
    {
    agrExcp.Handle(e =>
    {
    if (e is FileNotFoundException)
    {
    Console.WriteLine("Dosya bulunamadı");
    return true;
    }
    else if (e is FormatException)
    {
    Console.WriteLine("Dönüştürme hatası");
    return true;
    }
    else
    return false;
    }
    );
    }
    }
    }
    }

    Örneği çalıştırdığımızda aşağıdaki gibi bir sonuçla karşılaşırız.

    Ana Sayfaya Dön





  • Bu sayfa hakkında yorum ekle:
    İsminiz:
    E-mail adresiniz:
    Mesajın:

    Bugün 12 ziyaretçi (48 klik) kişi burdaydı!
     
       
    Facebook beğen  
       
    Reklam  
       
     
     


    PROGRAM ARA
    PROGRAM ARA

     
     
     

    SiteEkle.Com.Tr


     
     
     
    Üye Girişi

     
     
     
  • windows live messenger çalışmayı durdurdu uyarısı
  • laptop batarya ömrü nasıl uzatılır
  • soru kablosuz internet çalışmıyor
  • kullanıcı hesabı denetimini kapatmak
  • ana sayfam değişti neyapmalıyım
  • dosya uzantılarını çalıştıracak programlar
  • windows gezgini çalışmayı durdurdu
  • bilgisayar geç açılıyor
  • rar uzantılı dosyalar nasıl açılır
  • windows kısayol tuşları
  • ms-dos komutları-1-
  • ms-dos komutları-2-
  • ms-dos komutları-3-
  • ekran görüntüsü nasıl alınır kaydedilir
  • veri yürütme engellemesi
  • virüs nedir nasıl bulaşır
  • java nedir ne işe yarar
  • anakart pilini değiştirmek
  • port nedir
  • tcp ıp kodları
  • ethernet kartı nedir
  • ftp server kurulumu
  • işlemci kullanımı
  • Google AdSense Nedir
  • E-İMZA Nedir
  • JavaScript Nedir
  • Arama Motoru Nedir
  • XML Nedir
  • Java Nedir
  • World Wide Web (WWW)Nedir
  • ICQ Nedir
  • MMS Nedir
  • Splitter Nedir
  • ISDN Nedir
  • CGI Nedir
  • Alan Adı Nedir
  • Bookmark Nedir
  • DSL İle ADSL Nedir Farkları Nelerdir
  • Java Özellikleri Ve Avantajları Nedir
  • IRC & CHAT Nedir
  • E-Posta Nedir
  • ADSL Nasıl Çalışır
  • SMS Nedir
  • Wireless Network Nedir
  • CRM Nedir
  • ERP-MRP-II İlişkisi
  • ERP -E-Business İlişkisi
  • ERP Ve KOBİler
  • Ekran Kartı Nedir

  • isim
     
    => Sen de ücretsiz bir internet sitesi kurmak ister misin? O zaman burayı tıkla! <=

    Zirve100 Toplist
    http://ozgurcebilgiedin.tr.gg/: