private void timer_Tick(object sender, EventArgs e) { DocumentParser parser = backGroundParser.GetResult(); if (parser == null) { return; } if (TextFile == null) { return; } if (TextFile != parser.TextFile) { return; } Controller.AppendLog("ID " + CodeDocument.EditID.ToString() + " parserID " + parser.EditId.ToString()); if (CodeDocument.EditID != parser.EditId) { Controller.AppendLog("parsed mismatch " + DateTime.Now.ToString()); return; } Controller.AppendLog("parsed " + DateTime.Now.ToString()); CodeDocument.CopyFrom(parser.Document); //CodeDocument.CopyColorMarkFrom(parser.Document); codeTextbox.Invoke(new Action(codeTextbox.Refresh)); checkID("before accept parse normal"); if (parser.ParsedDocument != null) { TextFile.AcceptParsedDocument(parser.ParsedDocument); } Controller.MessageView.Update(TextFile.ParsedDocument); codeTextbox.ReDrawHighlight(); Controller.NavigatePanel.UpdateVisibleNode(); Controller.NavigatePanel.Refresh(); checkID("after accept parse normal"); }