'Is a call to '.Result' blocking my thread or just the execution of the current method

It says in documentation that calling .Result or .Wait() on a task will cause the calling thread to block and not do any operations, but when I tried to see if it blocked the thread in a test it didn't block the thread but rather the execution of the current scope (the method)

So by "thread" do they mean the current execution flow, because if I call .Result I want to block execution to await a value but not the thread (so that other operations running in parallel in the same thread are not blocked)

I have observed that calling either .Result or .Wait() still allows for parallel execution, so I would like a clear explanation of what the documentation means by thread.

If it does block the thread what is a good way to get a result from a Task from a sync method without blocking the thread



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source