diff options
author | therzok <marius.ungureanu@xamarin.com> | 2019-07-23 13:39:22 +0300 |
---|---|---|
committer | therzok <marius.ungureanu@xamarin.com> | 2019-07-23 13:45:27 +0300 |
commit | b74ff7f526cacf40e4b5337f13ca557669174414 (patch) | |
tree | b42976fbb3a1cbc0ac225cab4a6ae39c28b81362 /main/src/addins/MonoDeveloperExtensions | |
parent | 28607ee2be3951fba85ff5b49fd5d65bda1ee798 (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.cs | 4 |
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) |