folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Multithread Tetikleyici



C# Multithread Tetikleyici

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    CHaRMaNDeR
    CHaRMaNDeR's avatar
    Kayıt Tarihi: 05/Nisan/2003
    Erkek

    thread şart değil application.idle eventine bir fonksiyon ata. bu fonksiyonu sürekli çağırır .net framework.

     

    sonra o fonksiyona if (dizi.length == oncekiboyut){return} mantığını yerleştirirsin. sonraki işlememe geçmez dolayısıyla. 

    Bu bilinen ve çok kullanılan bir yöntem özellikle c# ta yapılan oyunların render loop'larında. threadda kullanılan while(1){} 'dan daha pratik diyebilirim


    Düşünüyorum, o halde varım.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    JPriest
    JPriest's avatar
    Kayıt Tarihi: 09/Mart/2007
    Erkek

    Java'da "event handling" denen olay var, C# karşılığını bilmiyorum.

    Java // http://www.google.com/#hl=en&source=hp&q=java+event+handling&aq=1&aqi=g10&aql=&oq=java+event+&gs_rfai=&fp=93c3c78db929eee0

    C# // http://www.google.com/#hl=en&q=c%23+event+handling&aq=f&aqi=g3&aql=&oq=&gs_rfai=&fp=93c3c78db929eee0


    Sen hiç kaval çaldın mı?
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    mstraker
    mstraker's avatar
    Kayıt Tarihi: 11/Haziran/2007
    Erkek

    Şimdi müridler olay tam olarak şu. Bu proje çok bir büyük bir proje ve her fonksiyon giriş-çıkışında log tutuluyor.Dolayısıyla bazı logları yazması uzun sürdüğünden o sırada başka istek geldiğinde çakıyor. Ben de şöyle düşündüm log yazma işlemi şöyle devam etsin; gelsin bir diziye yada collection sınıfından List'e kaydettsin işine devam etsin diğer taraf yani log yazma ile uğraşmasın. Ve dizide değişiklik olduğu anda bir thread ile arka planda log için diziden eleman alınıp oluşturulsun. Dizide değişilik olduğunu anlamayı sizlerin  de fikirlerinden yola çıkarak aştım şöyleki;

    ....

    AddArray(log*);    // Ekleme işlemi için fonk. çağırıyoruz,böylece dizide değişiklik olduğunu anlıyoruz :)

    ....

    private void AddArray(........)   //Dizimize eleman eklemek için bu fonk. çağırıyoruz

    {

    List.Add(log*);

    //List dizisine eleman eklenip akış devam edicek

    //Aynı anda bir arkaplan thread i yaratarak Eklenen elemanı log a yazıcam

    //Tabi bu log yazılırken başka log da gelebilir  o yüzden burda 'semaphore' kullanıcam

    }

     

    Takıldığım yer diziye eleman eklemeyi fonksiyonda yapmayı akıl edemediğim kısımdı.Uzun oldu ama belki böyle birşey işine yarayan olur diye ayrıntılı açıklama gereği hissetim.Yardımlar için teşekkür ederim...


    what makes you think i am not?
Toplam Hit: 4389 Toplam Mesaj: 14