{"action":"created","issue":{"url":"https://api.github.com/repos/shawnmclean/Mandrill-dotnet/issues/126","labels_url":"https://api.github.com/repos/shawnmclean/Mandrill-dotnet/issues/126/labels{/name}","comments_url":"https://api.github.com/repos/shawnmclean/Mandrill-dotnet/issues/126/comments","events_url":"https://api.github.com/repos/shawnmclean/Mandrill-dotnet/issues/126/events","html_url":"https://github.com/shawnmclean/Mandrill-dotnet/issues/126","id":69334222,"number":126,"title":"No ConfigureAwait(false) on async library calls","user":{"login":"michaelmsm89","id":5156449,"avatar_url":"https://avatars.githubusercontent.com/u/5156449?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelmsm89","html_url":"https://github.com/michaelmsm89","followers_url":"https://api.github.com/users/michaelmsm89/followers","following_url":"https://api.github.com/users/michaelmsm89/following{/other_user}","gists_url":"https://api.github.com/users/michaelmsm89/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelmsm89/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelmsm89/subscriptions","organizations_url":"https://api.github.com/users/michaelmsm89/orgs","repos_url":"https://api.github.com/users/michaelmsm89/repos","events_url":"https://api.github.com/users/michaelmsm89/events{/privacy}","received_events_url":"https://api.github.com/users/michaelmsm89/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-04-18T18:21:21Z","updated_at":"2015-04-23T14:01:22Z","closed_at":null,"body":"Methods such as SendMessageAsync do not configure async calls to not continue on the captured context. This causes issues for applications such as web apps, where you do not want to use the same thread context to continue with the execution after the async method returns. This forces users of the library to call methods in the following way:\r\n```C#\r\nvar result = await _api.SendMessageAsync(mandrillEmail).ConfigureAwait(false);\r\n```\r\nor they never return to the next line of code."},"comment":{"url":"https://api.github.com/repos/shawnmclean/Mandrill-dotnet/issues/comments/95595628","html_url":"https://github.com/shawnmclean/Mandrill-dotnet/issues/126#issuecomment-95595628","issue_url":"https://api.github.com/repos/shawnmclean/Mandrill-dotnet/issues/126","id":95595628,"user":{"login":"michaelmsm89","id":5156449,"avatar_url":"https://avatars.githubusercontent.com/u/5156449?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelmsm89","html_url":"https://github.com/michaelmsm89","followers_url":"https://api.github.com/users/michaelmsm89/followers","following_url":"https://api.github.com/users/michaelmsm89/following{/other_user}","gists_url":"https://api.github.com/users/michaelmsm89/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelmsm89/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelmsm89/subscriptions","organizations_url":"https://api.github.com/users/michaelmsm89/orgs","repos_url":"https://api.github.com/users/michaelmsm89/repos","events_url":"https://api.github.com/users/michaelmsm89/events{/privacy}","received_events_url":"https://api.github.com/users/michaelmsm89/received_events","type":"User","site_admin":false},"created_at":"2015-04-23T14:01:22Z","updated_at":"2015-04-23T14:01:22Z","body":"I would expect the library to use Task.ConfigureAwait(false) for any async calls that it makes, so that the user of the library would not have to. \r\n\r\nHave a look at this blog post by Stephen Cleary which explains in detail the benefit of doing this.\r\nhttp://blog.stephencleary.com/2012/07/dont-block-on-async-code.html"}}