/// <summary> /// Open the file. /// </summary> protected void _open(string name) { // Should be true. System.Diagnostics.Debug.Assert(false == CadKit.Helios.Application.Instance.MainForm.InvokeRequired); // This will start a separate thread and immediately return. OpenDocumentTask task = new OpenDocumentTask(name, _caller, this); }
private Task <DocumentInfo> OpenDocument(Uri uri, Guid guid, string persistentInfo) { var task = new OpenDocumentTask(this, uri, guid, persistentInfo); return(Task.Factory.StartNew( () => { var taskManager = (TaskManager)Application.Current.Dispatcher.Invoke(new Func <TaskManager>(() => TaskManager.RunTask(task))); taskManager.CurrentOperation.Wait(); return task.DocumentInfo; })); }