Hier ist, was ich bisher habe ... FillDataTable()
funktioniert gut, aber ich habe Probleme, weil ich synchronen Code und viele Anrufe zu Rücken an Rücken haben. Viele von ihnen sind bereit zu laufen, bevor das Verfahren beendet wird. Versuchen Sie, dies in async/await
zu konvertieren. Ich kopierte FillAsync()
von anderen Beispielen, die ich gesehen hatte, also könnte es Franken-Code sein.Async DataTable Call
public static DataTable FillDataTable(string sql, Database _db) {
using (OleDbConnection conn = NewConnectionFromGivenDB(_db)) {
conn.Open();
using (OleDbCommand comm = new OleDbCommand(sql, conn)) {
using (OleDbDataAdapter da = new OleDbDataAdapter(comm)) {
using (DataTable dt = new DataTable()) {
da.Fill(dt);
}
conn.Close();
return dt;
}
}
}
}
public static async Task<DataTable> FillAsync(string sql, Database _db) {
return await Task.Run(() => { return FillDataTable(sql, _db); });
}
Wenn ich folgendes in einem async
Methode aufrufen, gibt der Code nie.
Kann jemand sehen, was falsch ist oder mir einige Vorschläge für einen besseren Weg nach vorne geben?
In welchem Kontext führen Sie die Anwendung aus? WPF/ASP.NET/Formulare, solche Dinge? – Caramiriel
@Caramiriel Anwendung ist alles WPF – markokstate