Máy khách Oracle không ghi đè các phiên bản không đồng bộ của các phương thức. Họ sử dụng DbCommand
mặc định triển khai gọi các phiên bản không đồng bộ của phương thức.
Ví dụ:việc triển khai ExecuteNonQueryAsync
là:
// System.Data.Common.DbCommand
public virtual Task<int> ExecuteNonQueryAsync(CancellationToken cancellationToken)
{
if (cancellationToken.IsCancellationRequested)
{
return ADP.CreatedTaskWithCancellation<int>();
}
CancellationTokenRegistration cancellationTokenRegistration = default(CancellationTokenRegistration);
if (cancellationToken.CanBeCanceled)
{
cancellationTokenRegistration = cancellationToken.Register(new Action(this.CancelIgnoreFailure));
}
Task<int> result;
try
{
result = Task.FromResult<int>(this.ExecuteNonQuery());
}
catch (Exception ex)
{
cancellationTokenRegistration.Dispose();
result = ADP.CreatedTaskWithException<int>(ex);
}
return result;
}
Như bạn thấy, nó chỉ đơn giản gọi ExecuteNonQuery
bên dưới (quá tải không tham số của ExecuteNonQueryAsync
gọi phiên bản này của phương thức).