void QueueInference () { XmlParsedDocument doc = this.CU as XmlParsedDocument; if (defaultSchemaCompletionData != null || doc == null || doc.XDocument == null || inferenceQueued) return; if (inferredCompletionData == null || (doc.ParseTime - inferredCompletionData.TimeStamp).TotalSeconds >= 5 && doc.Errors.Count <= inferredCompletionData.ErrorCount) { inferenceQueued = true; System.Threading.ThreadPool.QueueUserWorkItem (delegate { InferredXmlCompletionProvider newData = new InferredXmlCompletionProvider (); newData.Populate (doc.XDocument); newData.TimeStamp = DateTime.Now; newData.ErrorCount = doc.Errors.Count; this.inferenceQueued = false; this.inferredCompletionData = newData; }); } }
void QueueInference () { XmlParsedDocument doc = this.CU as XmlParsedDocument; if (defaultSchemaCompletionData != null || doc == null || doc.XDocument == null || inferenceQueued) return; if (inferredCompletionData == null || (doc.LastWriteTimeUtc - inferredCompletionData.TimeStampUtc).TotalSeconds >= 5 && doc.Errors.Count <= inferredCompletionData.ErrorCount) { inferenceQueued = true; System.Threading.ThreadPool.QueueUserWorkItem (delegate { try { InferredXmlCompletionProvider newData = new InferredXmlCompletionProvider (); newData.Populate (doc.XDocument); newData.TimeStampUtc = DateTime.UtcNow; newData.ErrorCount = doc.Errors.Count; this.inferenceQueued = false; this.inferredCompletionData = newData; } catch (Exception ex) { LoggingService.LogInternalError ("Unhandled error in XML inference", ex); } }); } }