i'm trying use async pattern execute sql command , return datatable. can please advice how solve problem?
this code:
private static async task<datatable> executeasync(connections connection, sqlbuilder sql) { using (sqlconnection conn = new sqlconnection(getconnectstring(connection))) { await conn.openasync(); using (sqlcommand cmd = new sqlcommand(sql.query, conn)) { foreach (var parameter in sql.columnvalues.where(d => !d.name.startswith("#"))) { cmd.parameters.addwithvalue(parameter.name, parameter.value); } //why getting deadlock when executing next line? using (sqldatareader reader = await cmd.executereaderasync()) { datatable dt = new datatable(); dt.load(reader); return dt; } } } }
best regards, thomas
i suspect using wait
or result
further call stack. causes deadlock if called ui thread, describe on blog.