private void CheckNeedsUpdate() { DateTime startTime = DateTime.Now; if (m_retriever.RetrieveModel()) { Trace.WriteLineIf(m_tracingSwitch.TraceInfo, "Model retrieval took : " + (DateTime.Now.Ticks - startTime.Ticks)); XmlDocument fxtResult = m_retriever.ModelDom; XmlDocument gafawsFxtResult = m_retriever.TemplateDom; LoadParser(ref fxtResult, gafawsFxtResult); } }
internal TimeStamp LoadGrammarAndLexicon(ParserScheduler.NeedsUpdate eNeedsUpdate) { CheckDisposed(); Trace.WriteLineIf(tracingSwitch.TraceInfo, "Worker.LoadGrammarAndLexicon: eNeedsUpdate = " + eNeedsUpdate); string sDescription = SetDescription(eNeedsUpdate); TaskReport task = new TaskReport(sDescription, m_taskUpdateHandler); // no longer need this pop-up; was only for debugging // task.NotificationMessage = "Loading Parser"; if (m_retriever == null) { m_retriever = new M3ParserModelRetriever(m_database); } TimeStamp stamp; using (task) { XmlDocument fxtResult; XmlDocument gafawsFxtResult; try { DateTime startTime = DateTime.Now; stamp = m_retriever.RetrieveModel(m_connection, m_LangProject, task, eNeedsUpdate); long ttlTicks = DateTime.Now.Ticks - startTime.Ticks; Trace.WriteLineIf(tracingSwitch.TraceInfo, "FXT took : " + ttlTicks.ToString()); fxtResult = m_retriever.ModelDom; gafawsFxtResult = m_retriever.TemplateDom; } catch (Exception error) { if (error.GetType() == Type.GetType("System.Threading.ThreadInterruptedException") || error.GetType() == Type.GetType("System.Threading.ThreadAbortException")) { throw error; } task.EncounteredError(null); // Don't want to show message box in addition to yellow crash box! throw new ApplicationException("Error while retrieving model for the Parser.", error); } LoadParser(ref fxtResult, gafawsFxtResult, task, eNeedsUpdate); } return(stamp); }