Esempio n. 1
0
 public void SetEvent(DSEvent eve, string msg = " ", bool quit = false)
 {
     lock (locker)
     {
         if (EventQueue == null)
         {
             EventQueue = new Queue <DSEvent>();
         }
         EventQueue.Enqueue(eve);
         string str = "[" + eve.ToString() + "] " + msg + "\n";
         if (msg != " ")
         {
             AddMsg(str);
             if (Configure.debug)
             {
                 Console.WriteLine(str);
             }
         }
     }
     if (quit)
     {
         if (eve == DSEvent.Error)
         {
             throw new Exception();
         }
     }
 }
 public void SetEvent(DSEvent str)
 {
     if (EventQueue == null)
     {
         EventQueue = new Queue <DSEvent>();
     }
     EventQueue.Enqueue(str);
 }
        public void SetEvent(DSEvent eve, string msg = " ")
        {
            if (EventQueue == null)
            {
                EventQueue = new Queue <DSEvent>();
            }
            EventQueue.Enqueue(eve);
            string str = "[" + eve.ToString() + "] " + msg;

            AddMsg(str);
            Console.WriteLine(str);
            if (eve == DSEvent.Error)
            {
                throw new Exception();
            }
        }
Esempio n. 4
0
        public bool CheckEvent(double time, DSEvent successful, DSEvent failure)
        {
            lock (locker)
            {
                if (!threadEnable)
                {
                    return(false);
                }
            }
            DateTime t = DateTime.Now;

            while ((DateTime.Now - t).TotalMilliseconds < time)
            {
                int resulttest = 0;
                lock (locker)
                {
                    for (int i = 0; i < EventQueue.Count; i++)
                    {
                        var item = EventQueue.Dequeue();
                        if (item != DSEvent.None)
                        {
                            if (item == successful)
                            {
                                resulttest = 1;
                            }
                            if (item == failure)
                            {
                                resulttest = 2;
                            }
                        }
                    }
                }
                if (resulttest == 1)
                {
                    return(true);
                }
                if (resulttest == 2)
                {
                    return(false);
                }
                Thread.Sleep(10);
            }
            SetEvent(DSEvent.Error, "Time out");
            return(false);
        }
        public bool CheckEvent(double time, DSEvent successful, DSEvent failure)
        {
            DateTime t = DateTime.Now;

            while ((DateTime.Now - t).TotalMilliseconds < time)
            {
                var eve = GetEvent();
                if (eve != DSEvent.None)
                {
                    if (eve == successful)
                    {
                        return(true);
                    }
                    if (eve == failure)
                    {
                        return(false);
                    }
                    SetEvent(eve);//turn back event;
                }
                Thread.Sleep(1);
            }

            return(false);
        }