docs
docs copied to clipboard
Bad await FromResult examples
Type of issue
Missing information
Description
There are 2 places in the page where it does return await Task.FromResult(new User() { id = userId }); await and Task.FromResult are the opposite, the should not be use together.
Also, there are no example on what to do if the method is synchronous but must return a Task, ex: when implementing an interface.
Page URL
https://learn.microsoft.com/en-us/dotnet/csharp/asynchronous-programming/async-scenarios
Content source URL
https://github.com/dotnet/docs/blob/main/docs/csharp/asynchronous-programming/async-scenarios.md
Document Version Independent Id
77bdee53-c2a0-e16f-c93a-3ca0afae0b93
Article author
@BillWagner
Metadata
- ID: d885f1eb-2b37-693b-c91f-74b748c9424a
- Service: dotnet-csharp
- Sub-service: async-task-programming
hi @olivier-net
This is an area that needs more work.
Short answers to your comments:
- The
Task.FromResultis the correct way to create a task when you need to return a completed task, possibly with a result, in a synchronous method. In general,Task.FromResult(true)is the typical pattern for aTaskthat doesn't include a result. - Yes, the only reason to use
await Task.FromResult(...)is to force the compiler to generate the async state machine (because of theawait). That shouldn't be used here.