Microsoft.R.Editor.Tree.TreeUpdateTask.OnIdle C# (CSharp) Method

OnIdle() private method

Idle time event handler. Kicks background parsing if there are pending changes
private OnIdle ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        private void OnIdle(object sender, EventArgs e) {
            if (Thread.CurrentThread.ManagedThreadId != _ownerThreadId) {
                throw new ThreadStateException("Method should only be called on the main thread");
            }

            if (TextBuffer == null || TextBuffer.EditInProgress)
                return;

            if (_lastChangeTime != DateTime.MinValue && TimeUtility.MillisecondsSinceUtc(_lastChangeTime) > _parserDelay) {
                // Kick background parsing when idle slot comes so parser does not hit on every keystroke
                ProcessPendingTextBufferChanges(async: true);

                _lastChangeTime = DateTime.MinValue;
            }
        }