コード例 #1
0
 protected void FeedTimer(object sender, System.Timers.ElapsedEventArgs args, FeedingEventType eventType)
 {
     FeedData(eventType, new TaskQueueObject()
     {
         EventType = eventType, Data = null
     });
 }
コード例 #2
0
        /// <summary>
        /// feeding data into queue
        /// </summary>
        /// <param name="eventType"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        protected bool FeedData(FeedingEventType eventType, TaskQueueObject data)
        {
            bool result = false;

            if (_queue == null)
            {
                OnPythonEvent(null, "FeedData Queue is null");
            }
            else
            {
                try
                {
                    if (!_queue.TryAdd(data, 50))
                    {
                        OnPythonEvent(null, "FeedData TryAdd Queue Fail");
                        result = false;
                    }
                    else
                    {
                        result = true;
                    }
                }
                catch (InvalidOperationException e) //add fail
                {
                    OnPythonEvent(null, "FeedData TryAdd Queue InvalidOperationException:" + e.StackTrace);
                }
                catch (Exception e)
                {
                    OnPythonEvent(null, "FeedData Exception:" + e.StackTrace);
                }
            }
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// start timer
        /// </summary>
        /// <param name="interval"></param>
        /// <param name="eventType"></param>
        /// <returns></returns>
        protected Timer StartTimer(double interval, FeedingEventType eventType)
        {
            Timer timer = new System.Timers.Timer();

            timer.Interval = interval;

            timer.Elapsed += (sender, e) => FeedTimer(sender, e, eventType);

            timer.AutoReset = true;

            timer.Enabled = true;
            timer.Start();

            return(timer);
        }