Пример #1
0
        public void ContextSwitch()
        {
            ContextSwitchNeeded = false;

            LastContextSwitchTime = PerformanceCounter.ElapsedMilliseconds;

            if (CurrentThread != null)
            {
                _coreManager.Reset(CurrentThread.HostThread);
            }

            CurrentThread = SelectedThread;

            if (CurrentThread != null)
            {
                long currentTime = PerformanceCounter.ElapsedMilliseconds;

                CurrentThread.TotalTimeRunning += currentTime - CurrentThread.LastScheduledTime;
                CurrentThread.LastScheduledTime = currentTime;

                _coreManager.Set(CurrentThread.HostThread);

                CurrentThread.Execute();
            }
        }