--- lang: ja-jp breaks: true --- # C# Task async メソッド を UIからコールした場合に、`SynchronizationContext` にスイッチできずにデッドロックするパターン 2021-12-28 ## デッドロックするパターン ```csharp= Func<Task> task = async () => await Task.Run(() => { Task.Delay(2000).Wait(); }); task().Wait(); ``` ## デッドロックしないパターン ```csharp= Func<Task> task = async () => await Task.Run(() => { Task.Delay(2000).Wait(); }) .ConfigureAwait(false); task().Wait(); ``` ```csharp= Func<Task> task = () => Task.Run(() => { Task.Delay(2000).Wait(); }); task().Wait(); ``` ###### tags: `C#` `Task` `async` `await` `SynchronizationContext`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up