public override async Task Run(Command command) { var dialog = new OpenFileDialog(); dialog.SetupViaEditorFileType(PhxStudioProject.FileType); if (dialog.ShowDialog() != true) { return; } if (mProjectService.Engine != null) { mEventAggregator.PublishOnUIThread(new ProjectEngineUnloadedEventArgs()); } mEventAggregator.PublishOnUIThread(new ProjectClosingEventArgs()); var project_task = Task.Factory.StartNew(OpenProjectCallback, dialog.FileName, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default); var project_task_result = await project_task; if (project_task_result != null) { return; } mEventAggregator.PublishOnUIThread(new ProjectOpeningEventArgs()); }