Isso acontece porque o
Async
métodos no MySql.Data
conector não são realmente assíncronos. Eles bloqueiam a E/S da rede e só retornam quando a operação do banco de dados é concluída. (Para uma descrição muito mais detalhada, veja esta pergunta e sua resposta principal
.) bug #70111 do MySQL
relata esse problema no conector MySQL. Para obter operações de banco de dados verdadeiramente assíncronas, você terá que esperar até que esse bug seja corrigido ou mudar para um conector diferente.
Estou desenvolvendo um novo conector totalmente assíncrono (MySqlConnector no NuGet ; fonte no GitHub ). Ele suporta
MySqlDataAdapter
desde a versão 0.33.0
.