folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Timer Kontrolüyle İlgili Bir Sorum Var.



Timer Kontrolüyle İlgili Bir Sorum Var.

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    LinkinMeTiN
    LinkinMeTiN's avatar
    Kayıt Tarihi: 14/Ağustos/2002
    Erkek

    private void timerClose15_Tick(object sender, EventArgs e)
    {
    killProcesses();
    timerClose15.Enabled = false;

     

     

    yukarıdaki komutla bi tane uygulamayı  timer süresi dolunca kapatıyorum. ama program bazen saçmalıyor ve erken kapatıyor. bunun sebebi ne olabilir ?  bunu nasıl düzeltebilirim ?

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    killProcess ne kadar uzun suruyor ve timer ne kadar surede tetikleniyor bilmiyorum ama bu durumda timer kapanmadan once birden fazla tetiklenme sansi var gibi gorunuyor. O yuzden once timer i durdurup sonra kill process metodunu cagirsan daha iyi olur...

    sacmalamadan kastin nedir hocam? cok genel bir tabir kullanmissin. Belki dedigim seyle alakali olabilir belki baska nedeni olabilir. 

     

     

    unbalanced tarafından 15/Nis/16 08:51 tarihinde düzenlenmiştir

    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    LinkinMeTiN
    LinkinMeTiN's avatar
    Kayıt Tarihi: 14/Ağustos/2002
    Erkek
    unbalanced bunu yazdı

    killProcess ne kadar uzun suruyor ve timer ne kadar surede tetikleniyor bilmiyorum ama bu durumda timer kapanmadan once birden fazla tetiklenme sansi var gibi gorunuyor. O yuzden once timer i durdurup sonra kill process metodunu cagirsan daha iyi olur...

    sacmalamadan kastin nedir hocam? cok genel bir tabir kullanmissin. Belki dedigim seyle alakali olabilir belki baska nedeni olabilir. 

     

     

    7 tane timer  var  hepsi birbirinden farklı saniyelerde kill yapıyor.  (saniyeler  150 ile 300 saniye arasında )

     

    saçmalıyordan kastım. x uygulamayı  10 kere açtım  8 kere düzgün kapatıyor  yani saniye tam dolunca kapanıyor. 2  kere   erken kapatıyor.

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek

    Hocam selam. Parameterized Thread kullanabilirsiniz. Isiniz daha kolay olur gibime geliyor.

    Ufak bir uygulama yaptim ve aciklamalarini yazdim.

    using System;
    using System.Threading;
    
    namespace ParameterizedThreadOrnegi
    {
        class Program
        {
            //Burada kac tane thread calistirma istiyorsunuz onu secin
            const int THREADS_COUNT = 5;
    
            //Burada THREADS_COUNT kadar counter tutup hepsinin suresini veriyorum
            public static volatile int[] threadCounters = new int[THREADS_COUNT] { 10, 10, 10, 10, 10 };   
         
            //Tum threadlari baslatan fonksiyon
            private static void  StartThreads()
            {
                for(int i = 0;i < THREADS_COUNT;i++)
                {
                    //Burada ThreadWork sinifimizdaki static run metodunu cagiriyoruz
                    Thread aThread = new Thread(ThreadWork.Run);
                    aThread.Start(i);
                }
            }
    
            static void Main(string[] args)
            {
                //threadler baslatiliyor
                StartThreads(); 
             
                //Burada tum conuterlar sifirlanmissa 
                //stop = true oluyor ve main sonlaniyor
                bool stop = false;
                while (!stop)
                {
                    stop=true;
                    for (int i = 0; i < THREADS_COUNT; i++)
                    {
                        
                        if (threadCounters[i] > 0)
                        {
                            stop = false;
                            continue;
                        }
                    }
                }
    
                Console.ReadLine();
            }        
        }
    
        //Her calisan threadi barindiran class yapimiz
        class ThreadWork
        {
            //position olarak gelen parametre threadCounters icindeki
            //threadin yerini belirliyor
            public static void Run(object position)
            {
                while(Program.threadCounters[(int)position] > 0)
                {
                    Console.Write("{0}", position);
                    Program.threadCounters[(int)position]--;
                }
            }
        }
    }
    

     


    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    LinkinMeTiN
    LinkinMeTiN's avatar
    Kayıt Tarihi: 14/Ağustos/2002
    Erkek

    Tamam teşekkür edeirm. dediklerinizi denicem.

Toplam Hit: 654 Toplam Mesaj: 5
c# timer