Я уверен, что это возможно.В дополнение к структурированию вашего кода, как показано ниже ( source ):
public Task<DataSet> GetDataSetAsync(string sConnectionString, string sSQL, params SqlParameter[] parameters)
{
return Task.Run(() =>
{
using (var newConnection = new SqlConnection(sConnectionString))
using (var mySQLAdapter = new SqlDataAdapter(sSQL, newConnection))
{
mySQLAdapter.SelectCommand.CommandType = CommandType.Text;
if (parameters != null) mySQLAdapter.SelectCommand.Parameters.AddRange(parameters);
DataSet myDataSet = new DataSet();
mySQLAdapter.Fill(myDataSet);
return myDataSet;
}
});
}
В сочетании с использованием ключевого слова «await» вы получите нужные вам результаты.
//Use Async method to get data
DataSet results = await GetDataSetAsync(sConnectionString, sSQL, sqlParams);
Также обновите строку подключения, добавив свойство подключения « Асинхронная обработка = true » ( source )
Я также рекомендовал бы иметьпосмотрите на метод « OpenAsync ».Вы можете прочитать больше об этом в документах .