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:
authortherzok <marius.ungureanu@xamarin.com>2019-07-23 13:39:22 +0300
committertherzok <marius.ungureanu@xamarin.com>2019-07-23 13:45:27 +0300
commitb74ff7f526cacf40e4b5337f13ca557669174414 (patch)
treeb42976fbb3a1cbc0ac225cab4a6ae39c28b81362 /main/src/addins/MonoDeveloperExtensions
parent28607ee2be3951fba85ff5b49fd5d65bda1ee798 (diff)
[Core] Move more Task.Run responsibility onto caller code
And use ConfigureAwait(false) where code is supposed to not be run on the parent context Instead of having Task.Run() scattered everywhere, it should be done at call site, pushing more for ConfigureAwait(false) on every callee of the method. Task.Run(() => Task.Run()) actually can lead to more performance, by queueing up too many nested tasks on the scheduler. Also calling Task.Run at caller site only allows us to better control how the code is run in parallel. Sadly, some of this is API, so there is no way to change it so it's no longer Async over Sync https://devblogs.microsoft.com/pfxteam/should-i-expose-asynchronous-wrappers-for-synchronous-methods/
Diffstat (limited to 'main/src/addins/MonoDeveloperExtensions')
-rw-r--r--main/src/addins/MonoDeveloperExtensions/MonoMakefileProjectReader.cs4
1 files changed, 2 insertions, 2 deletions
diff --git a/main/src/addins/MonoDeveloperExtensions/MonoMakefileProjectReader.cs b/main/src/addins/MonoDeveloperExtensions/MonoMakefileProjectReader.cs
index 317e5d1840..017c404aef 100644
--- a/main/src/addins/MonoDeveloperExtensions/MonoMakefileProjectReader.cs
+++ b/main/src/addins/MonoDeveloperExtensions/MonoMakefileProjectReader.cs
@@ -53,12 +53,12 @@ namespace MonoDeveloper
public override Task<SolutionItem> LoadSolutionItem (ProgressMonitor monitor, SolutionLoadContext ctx, string fileName, MSBuildFileFormat expectedFormat, string typeGuid, string itemGuid)
{
- return Task.Run (() => (SolutionItem) ReadFile (fileName, false, monitor));
+ return Task.FromResult ((SolutionItem) ReadFile (fileName, false, monitor));
}
public override Task<WorkspaceItem> LoadWorkspaceItem (ProgressMonitor monitor, string fileName)
{
- return Task.Run (() => (WorkspaceItem) ReadFile (fileName, false, monitor));
+ return Task.FromResult ((WorkspaceItem) ReadFile (fileName, false, monitor));
}
public object ReadFile (FilePath fileName, bool hasParentSolution, ProgressMonitor monitor)