I\'m just experimenting with WinRT and one demo app i\'m creating is a basic \"notepad\" style app which loads/saves to local storage. Whilst I\'m familiar with the proper
Whilst I'm familiar with the proper
async
approach for building WinRT apps, my demo app is using a synchronousLoad
to keep things simple.
Not really. Mixing synchronous with asynchronous code is extremely complex. It's far simpler to just use async
everywhere.
When an async
method continues execution after waiting for a task, it will return to its original context by default. (I cover this in more detail in my async/await blog post). Some contexts (such as UI contexts) only permit a single thread; if that thread is blocked (e.g., on Task.Result
), then the async
method cannot enter that context to complete its execution. This causes a deadlock.
For more information:
This deadlock is famous enough that it's actually been demo'd by Microsoft: