Spec-Zone.ru › MySQL Connectors 1.0

5.14 Асинхронные методы

Шаблон асинхронности на основе задач (TAP) — это шаблон асинхронности в .NET Framework. Он основан на типах Task и Task<TResult> в пространстве имён System.Threading.Tasks, которые используются для представления произвольных асинхронных операций.

Async-Await — это новые ключевые слова, введённые для работы с TAP. Модификатор Async используется для указания того, что метод, лямбда-выражение или анонимный метод являются асинхронными. Оператор Await применяется к задаче в асинхронном методе для приостановки выполнения метода до завершения ожидаемой задачи.

Требования

  • Поддержка Async-Await требует .NET Framework 4.5 или более поздней версии

  • Поддержка TAP требует .NET Framework 4.0 или более поздней версии

  • MySQL Connector/NET 6.9 или более поздней версии

Методы

Следующие методы могут быть использованы с TAP или Async-Await.

  • Пространство имен MySql.Data.Entity

    • Класс EFMySqlCommand

      • Task PrepareAsync()

      • Task PrepareAsync(CancellationToken)

  • Пространство имен MySql.Data

    • Класс MySqlBulkLoader

      • Task<int> LoadAsync()

      • Task<int> LoadAsync(CancellationToken

    • Класс MySqlConnection

      • Task<MySqlTransaction> BeginTransactionAsync()

      • Task<MySqlTransaction> BeginTransactionAsync (CancellationToken)

      • Task<MySqlTransaction> BeginTransactionAsync(IsolationLevel)

      • Task<MySqlTransaction> BeginTransactionAsync (IsolationLevel , CancellationToken)

      • Task ChangeDatabaseAsync(string)

      • Task ChangeDatabaseAsync(string, CancellationToken)

      • Task CloseAsync()

      • Task CloseAsync(CancellationToken)

      • Task ClearPoolAsync(MySqlConnection)

      • Task ClearPoolAsync(MySqlConnection, CancellationToken)

      • Task ClearAllPoolsAsync()

      • Task ClearAllPoolsAsync(CancellationToken)

      • Task<MySqlSchemaCollection> GetSchemaCollection(string, string[])

      • Task<MySqlSchemaCollection> GetSchemaCollection(string, string[], CancellationToken)

    • Класс MySqlDataAdapter

      • Task<int> FillAsync(DataSet)

      • Task<int> FillAsync(DataSet, CancellationToken)

      • Task<int> FillAsync(DataTable)

      • Task<int> FillAsync(DataTable, CancellationToken)

      • Task<int> FillAsync(DataSet, string)

      • Task<int> FillAsync(DataSet, string, CancellationToken)

      • Task<int> FillAsync(DataTable, IDataReader)

      • Task<int> FillAsync(DataTable, IDataReader, CancellationToken)

      • Task<int> FillAsync(DataTable, IDbCommand, CommandBehavior)

      • Task<int> FillAsync(DataTable, IDbCommand, CommandBehavior, CancellationToken)

      • Task<int> FillAsync(int, int, params DataTable[])

      • Task<int> FillAsync(int, int, params DataTable[], CancellationToken)

      • Task<int> FillAsync(DataSet, int, int, string)

      • Task<int> FillAsync(DataSet, int, int, string, CancellationToken)

      • Task<int> FillAsync(DataSet, string, IDataReader, int, int)

      • Task<int> FillAsync(DataSet, string, IDataReader, int, int, CancellationToken)

      • Task<int> FillAsync(DataTable[], int, int, IDbCommand, CommandBehavior)

      • Task<int> FillAsync(DataTable[], int, int, IDbCommand, CommandBehavior, CancellationToken)

      • Task<int> FillAsync(DataSet, int, int, string, IDbCommand, CommandBehavior)

      • Task<int> FillAsync(DataSet, int, int, string, IDbCommand, CommandBehavior, CancellationToken)

      • Task<DataTable[]> FillSchemaAsync(DataSet, SchemaType)

      • Task<DataTable[]> FillSchemaAsync(DataSet, SchemaType, CancellationToken)

      • Task<DataTable[]> FillSchemaAsync(DataSet, SchemaType, string)

      • Task<DataTable[]> FillSchemaAsync(DataSet, SchemaType, string, CancellationToken)

      • Task<DataTable[]> FillSchemaAsync(DataSet, SchemaType, string, IDataReader)

      • Task<DataTable[]> FillSchemaAsync(DataSet, SchemaType, string, IDataReader, CancellationToken)

      • Task<DataTable[]> FillSchemaAsync(DataSet, SchemaType, IDbCommand, string, CommandBehavior)

      • Task<DataTable[]> FillSchemaAsync(DataSet, SchemaType, IDbCommand, string, CommandBehavior, CancellationToken)

      • Task<DataTable> FillSchemaAsync(DataTable, SchemaType)

      • Task<DataTable> FillSchemaAsync(DataTable, SchemaType, CancellationToken)

      • Task<DataTable> FillSchemaAsync(DataTable, SchemaType, IDataReader)

      • Task<DataTable> FillSchemaAsync(DataTable, SchemaType, IDataReader, CancellationToken)

      • Task<DataTable> FillSchemaAsync(DataTable, SchemaType, IDbCommand, CommandBehavior)

      • Task<DataTable> FillSchemaAsync(DataTable, SchemaType, IDbCommand, CommandBehavior, CancellationToken)

      • Task<int> UpdateAsync(DataRow[])

      • Task<int> UpdateAsync(DataRow[], CancellationToken)

      • Task<int> UpdateAsync(DataSet)

      • Task<int> UpdateAsync(DataSet, CancellationToken)

      • Task<int> UpdateAsync(DataTable)

      • Task<int> UpdateAsync(DataTable, CancellationToken)

      • Task<int> UpdateAsync(DataRow[], DataTableMapping, CancellationToken)

      • Task<int> UpdateAsync(DataSet, string)

      • Task<int> UpdateAsync(DataSet, string, CancellationToken)

    • Класс MySqlHelper

      • Task<DataRow> ExecuteDataRowAsync(string, string, params MySqlParameter[])

      • Task<DataRow> ExecuteDataRowAsync(string, string, CancellationToken, params MySqlParameter[])

      • Task<int> ExecuteNonQueryAsync(MySqlConnection, string, params MySqlParameter[])

      • Task<int> ExecuteNonQueryAsync(MySqlConnection, string, CancellationToken, params MySqlParameter[])

      • Task<int> ExecuteNonQueryAsync(string, string, params MySqlParameter[])

      • Task<int> ExecuteNonQueryAsync(string, string, CancellationToken, params MySqlParameter[])

      • Task<DataSet> ExecuteDatasetAsync(string, string)

      • Task<DataSet> ExecuteDatasetAsync(string, string, CancellationToken)

      • Task<DataSet> ExecuteDatasetAsync(string, string, CancellationToken, params MySqlParameter[])

      • Task<DataSet> ExecuteDatasetAsync(MySqlConnection, string)

      • Task<DataSet> ExecuteDatasetAsync(MySqlConnection, string, CancellationToken)

      • Task<DataSet> ExecuteDatasetAsync(MySqlConnection, string, params MySqlParameter[])

      • Task<DataSet> ExecuteDatasetAsync(MySqlConnection, string, CancellationToken, params MySqlParameter[])

      • Task UpdateDataSetAsync(string, string, DataSet, string)

      • Task UpdateDataSetAsync(string, string, DataSet, string, CancellationToken)

      • Task<MySqlDataReader> ExecuteReaderAsync(MySqlConnection, MySqlTransaction, string, MySqlParameter[], bool)

      • Task<MySqlDataReader> ExecuteReaderAsync(MySqlConnection, MySqlTransaction, string, MySqlParameter[], bool, CancellationToken)

      • Task<MySqlDataReader> ExecuteReaderAsync(string, string)

      • Task<MySqlDataReader> ExecuteReaderAsync(string, string, CancellationToken)

      • Task<MySqlDataReader> ExecuteReaderAsync(MySqlConnection, string)

      • Task<MySqlDataReader> ExecuteReaderAsync(MySqlConnection, string, CancellationToken)

      • Task<MySqlDataReader> ExecuteReaderAsync(string, string, params MySqlParameter[])

      • Task<MySqlDataReader> ExecuteReaderAsync(string, string, CancellationToken, params MySqlParameter[])

      • Task<MySqlDataReader> ExecuteReaderAsync(MySqlConnection, string, params MySqlParameter[])

      • Task<MySqlDataReader> ExecuteReaderAsync(MySqlConnection, string, CancellationToken, params MySqlParameter[])

      • Task<object> ExecuteScalarAsync(string, string)

      • Task<object> ExecuteScalarAsync(string, string, CancellationToken)

      • Task<object> ExecuteScalarAsync(string, string, params MySqlParameter[])

      • Task<object> ExecuteScalarAsync(string, string, CancellationToken, params MySqlParameter[])

      • Task<object> ExecuteScalarAsync(MySqlConnection, string)

      • Task<object> ExecuteScalarAsync(MySqlConnection, string, CancellationToken)

      • Task<object> ExecuteScalarAsync(MySqlConnection, string, params MySqlParameter[])

      • Task<object> ExecuteScalarAsync(MySqlConnection, string, CancellationToken, params MySqlParameter[])

    • Класс MySqlScript

      • Task<int> ExecuteAsync()

      • Task<int> ExecuteAsync(CancellationToken)

    Помимо перечисленных выше методов, следующие методы унаследованы от .NET Framework:

  • Пространство имён MySql.Data.Entity

    • Класс EFMySqlCommand

      • Task<DbDataReader> ExecuteDbDataReaderAsync(CommandBehaviour, CancellationToken)

      • Task<int> ExecuteNonQueryAsync()

      • Task<int> ExecuteNonQueryAsync(CancellationToken)

      • Task<DbDataReader> ExecuteReaderAsync()

      • Task<DbDataReader> ExecuteReaderAsync(CancellationToken)

      • Task<DbDataReader> ExecuteReaderAsync(CommandBehaviour)

      • Task<DbDataReader> ExecuteReaderAsync(CommandBehaviour, CancellationToken)

      • Task<object> ExecuteScalarAsync()

      • Task<object> ExecuteScalarAsync(CancellationToken)

  • Пространство имён MySql.Data

    • Класс MySqlCommand

      • Task<DbDataReader> ExecuteDbDataReaderAsync(CommandBehaviour, CancellationToken)

      • Task<int> ExecuteNonQueryAsync()

      • Task<int> ExecuteNonQueryAsync(CancellationToken)

      • Task<DbDataReader> ExecuteReaderAsync()

      • Task<DbDataReader> ExecuteReaderAsync(CancellationToken)

      • Task<DbDataReader> ExecuteReaderAsync(CommandBehaviour)

      • Task<DbDataReader> ExecuteReaderAsync(CommandBehaviour, CancellationToken)

      • Task<object> ExecuteScalarAsync()

      • Task<object> ExecuteScalarAsync(CancellationToken)

    • Класс MySqlConnection

      • Task OpenAsync()

      • Task OpenAsync(CancellationToken)

    • Класс MySqlDataReader

      • Task<T> GetFieldValueAsync<T>(int)

      • Task<T> GetFieldValueAsync<T>(int, CancellationToken)

      • Task<bool> IsDBNullAsync(int)

      • Task<bool> IsDBNullAsync(int, CancellationToken)

      • Task<bool> NextResultAsync()

      • Task<bool> NextResultAsync(CancellationToken)

      • Task<bool> ReadAsync()

      • Task<bool> ReadAsync(CancellationToken)

Примеры

Следующие примеры кода C# демонстрируют, как использовать асинхронные методы:

В этом примере метод имеет модификатор async, потому что вызов метода await относится к методу LoadAsync. Метод возвращает объект Task, содержащий информацию о результате ожидаемого метода. Возвращение Task подобно методу void, но вы не должны использовать async void, если ваш метод не является методом верхнего уровня, например, событием.

public async Task BulkLoadAsync()
{
  MySqlConnection myConn = new MySqlConnection("MyConnectionString");
  MySqlBulkLoader loader = new MySqlBulkLoader(myConn);

  loader.TableName       = "BulkLoadTest";
  loader.FileName        = @"c:\MyPath\MyFile.txt";
  loader.Timeout         = 0;

  var result             = await loader.LoadAsync();
}

В этом примере асинхронный метод «async void» используется с «await» для метода ExecuteNonQueryAsync, чтобы соответствовать событию onclick кнопки. Именно поэтому метод не возвращает Task.

private async void myButton_Click()
{
  MySqlConnection myConn = new MySqlConnection("MyConnectionString");
  MySqlCommand proc      = new MySqlCommand("MyAsyncSpTest", myConn);

  proc.CommandType       = CommandType.StoredProcedure;

  int result             = await proc.ExecuteNonQueryAsync();
}

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-async-methods.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API