dotnet / dotnet-api-docs

.NET API reference documentation (.NET 5+, .NET Core, .NET Framework)
https://docs.microsoft.com/dotnet/api/
Other
735 stars 1.57k forks source link

GetAwaiter() Remarks Are Not Clear #9064

Open Yashuaa opened 1 year ago

Yashuaa commented 1 year ago

I've seen multiple discussions in the issues section about the remark below

This method is intended for compiler use rather than use directly in code.

For this specific method GetAwaiter() which is used like so:

var result = SomeAsyncMethod().GetAwaiter().GetResult();

So if devs shouldn't be using GetAwaiter() in code then we need to know, if there are 1 off situations when we should prefer GetAwaiter().GetResult() versus .Wait() - we need to know.

So the remark should either be removed or there should be clarification because at this point the stance from MSFT is "Don't use it" and that doesn't seem to be the case from @stephentoub 's comments.

I think the remark should just be removed altogether. It looked like someone tried to remove it but the PR got closed and never got merged.

It would be for here : https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.getawaiter?view=net-7.0

dotnet-issue-labeler[bot] commented 1 year ago

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

ghost commented 1 year ago

Tagging subscribers to this area: @dotnet/area-system-threading-tasks See info in area-owners.md if you want to be subscribed.

Issue Details
I've seen multiple discussions in the issues section about the remark below > This method is intended for compiler use rather than use directly in code. For this specific method `GetAwaiter()` which is used like so: ```cs var result = SomeAsyncMethod().GetAwaiter().GetResult(); ``` So if devs shouldn't be using `GetAwaiter()` in code then we need to know, if there are 1 off situations when we should prefer `GetAwaiter().GetResult()` versus `.Wait()` - we need to know. So the remark should either be removed or there should be clarification because at this point the stance from MSFT is "Don't use it" and that doesn't seem to be the case from @stephentoub 's comments. I think the remark should just be removed altogether. It looked like someone tried to remove it but the PR got closed and never got merged. It would be for here : https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.getawaiter?view=net-7.0
Author: Yashuaa
Assignees: -
Labels: `untriaged`, `Pri3`, `area-System.Threading.Tasks`, `needs-area-label`
Milestone: -
stephentoub commented 1 year ago

We should delete those comments from the awaiters from Task and Task<TResult>. They're no longer accurate.

Yashuaa commented 2 months ago

Did anyone ever get on this ?