diff options
author | Lluis Sanchez <llsan@microsoft.com> | 2018-06-19 14:51:57 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-19 14:51:57 +0300 |
commit | e5958ff9015312c81fc3b1b6b6413585575ca869 (patch) | |
tree | 721ab1a8fcc0d19dff91e5d557a0415aa20a4c2a | |
parent | 7f9c80d99fa350c98e4a01aa9ec443a3b8a3e073 (diff) | |
parent | d6e64edf1fa2b955ba6d1bf3126b929f943a2135 (diff) |
Merge pull request #5096 from mono/backport-pr-5095-to-release-7.6monodevelop-7.6.0.1773monodevelop-7.6.0.1760
[release-7.6] [Core] Fix UI hang when building ASP.NET Core 2.1 Angular project
-rw-r--r-- | main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs index 3fe1ed9e74..1a57f4eebe 100644 --- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs +++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs @@ -4244,16 +4244,22 @@ namespace MonoDevelop.Projects void OnFileCreated (object sender, FileSystemEventArgs e) { - if (Directory.Exists (e.FullPath)) - return; + try { + if (Directory.Exists (e.FullPath)) + return; - FilePath filePath = e.FullPath; - if (filePath.FileName == ".DS_Store") - return; + FilePath filePath = e.FullPath; + if (filePath.FileName == ".DS_Store") + return; + + // Ignore temporary files created when saving a file in the editor. + if (filePath.FileName.StartsWith (".#", StringComparison.OrdinalIgnoreCase)) + return; - Runtime.RunInMainThread (() => { OnFileCreatedExternally (e.FullPath); - }); + } catch (Exception ex) { + LoggingService.LogError ("OnFileCreated error.", ex); + } } void OnFileDeleted (object sender, FileSystemEventArgs e) @@ -4291,7 +4297,16 @@ namespace MonoDevelop.Projects var eit = CreateFakeEvaluatedItem (sourceProject, it, include, null); var pi = CreateProjectItem (eit); pi.Read (this, eit); - Items.Add (pi); + if (Runtime.IsMainThread) { + Items.Add (pi); + } else { + Runtime.RunInMainThread (() => { + // Double check the file has not been added on the UI thread by the IDE. + if (!Files.Any (file => file.FilePath == fileName)) { + Items.Add (pi); + } + }).Ignore (); + } } } |