Beispiel #1
0
        private void EventTimerWorkerThread()
        {
            // wait for timer data to be loaded before proceeding (or if we are cancelled)
            EventWaitHandle.WaitAny(new ManualResetEvent[] { m_TimerDataLoaded, m_Canceled });

            Timer ticker = new Timer();

            ticker.Interval = 1000;
            ticker.Elapsed += (s, e) =>
            {
                try
                {
                    Dispatcher.Invoke(() =>
                    {
                        foreach (EventTimerBox b in m_EventTimerBoxes.Values)
                        {
                            b.Tick();
                        }
                    }, DispatcherPriority.Background, CancellationToken.None, new TimeSpan(0, 0, 1));
                }
                catch
                { }
            };
            ticker.Start();

            while (m_Running)
            {
                try
                {
                    EventTimerResponse timerData = new EventTimerRequest().Execute();
                    if (timerData != null)
                    {
                        Dispatcher.Invoke(() =>
                        {
                            EventTimerItems_Boss.Children.Clear();
                            EventTimerItems_PreEvent.Children.Clear();
                            EventTimerItems_Other.Children.Clear();

                            foreach (MetaEventStatus e in timerData.Events)
                            {
                                EventTimerBox box = m_EventTimerBoxes[e.Id];
                                box.SetData(e);

                                switch (e.StageTypeEnum)
                                {
                                case MetaEventStage.StageType.Boss:
                                    EventTimerItems_Boss.Children.Add(box);
                                    break;

                                case MetaEventStage.StageType.PreEvent:
                                    EventTimerItems_PreEvent.Children.Add(box);
                                    break;

                                default:
                                    EventTimerItems_Other.Children.Add(box);
                                    break;
                                }
                            }
                        }, DispatcherPriority.Background, CancellationToken.None, new TimeSpan(0, 0, 25));
                    }
                }
                catch
                { }

                m_Canceled.WaitOne(30000);
            }

            ticker.Stop();
        }
Beispiel #2
0
        private void EventTimerWorkerThread()
        {
            // wait for timer data to be loaded before proceeding (or if we are cancelled)
            EventWaitHandle.WaitAny(new ManualResetEvent[] { m_TimerDataLoaded, m_Canceled });

            Timer ticker = new Timer();
            ticker.Interval = 1000;
            ticker.Elapsed += (s, e) =>
                {
                    try
                    {
                        Dispatcher.Invoke(() =>
                            {
                                foreach (EventTimerBox b in m_EventTimerBoxes.Values)
                                    b.Tick();
                            }, DispatcherPriority.Background, CancellationToken.None, new TimeSpan(0, 0, 1));
                    }
                    catch
                    { }
                };
            ticker.Start();

            while (m_Running)
            {
                try
                {
                    EventTimerResponse timerData = new EventTimerRequest().Execute();
                    if (timerData != null)
                    {
                        Dispatcher.Invoke(() =>
                            {
                                EventTimerItems_Boss.Children.Clear();
                                EventTimerItems_PreEvent.Children.Clear();
                                EventTimerItems_Other.Children.Clear();

                                foreach (MetaEventStatus e in timerData.Events)
                                {
                                    EventTimerBox box = m_EventTimerBoxes[e.Id];
                                    box.SetData(e);

                                    switch (e.StageTypeEnum)
                                    {
                                        case MetaEventStage.StageType.Boss:
                                            EventTimerItems_Boss.Children.Add(box);
                                            break;
                                        case MetaEventStage.StageType.PreEvent:
                                            EventTimerItems_PreEvent.Children.Add(box);
                                            break;
                                        default:
                                            EventTimerItems_Other.Children.Add(box);
                                            break;
                                    }
                                }
                            }, DispatcherPriority.Background, CancellationToken.None, new TimeSpan(0, 0, 25));
                    }
                }
                catch
                { }

                m_Canceled.WaitOne(30000);
            }

            ticker.Stop();
        }