Beispiel #1
0
        private void DispatchThreadMain(object obj)
        {
            ("Dispatch Thread Starting: " + Thread.CurrentThread.Name).Log();
            try
            {
                if (_extension == null)
                {
                    ("Extension Not Loaded, Dispatch Runtime Aborting").Log();
                }
                else
                {
                    _extension.OnLoad((IMubox)obj);
                    while (!_exitYet.WaitOne(50)) // 20fps
                    {
                        dynamic command = default(dynamic);
                        while (_dispatchQueue.TryDequeue(out command))
                        {
                            switch ((string)command.Instruction)
                            {
                            case "STOP":
                                _exitYet.Set();
                                break;

                            default:
                                break;
                            }
                        }
                    }
                    _extension.OnUnload();
                }
            }
            finally
            {
                ("Dispatch Thread \"" + Thread.CurrentThread.Name + "\" Stopping").Log();
                _shutdownYet.Set();
            }
        }