Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <llsan@microsoft.com>2018-06-19 14:51:57 +0300
committerGitHub <noreply@github.com>2018-06-19 14:51:57 +0300
commite5958ff9015312c81fc3b1b6b6413585575ca869 (patch)
tree721ab1a8fcc0d19dff91e5d557a0415aa20a4c2a
parent7f9c80d99fa350c98e4a01aa9ec443a3b8a3e073 (diff)
parentd6e64edf1fa2b955ba6d1bf3126b929f943a2135 (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.cs31
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 ();
+ }
}
}