WriteAsync(byte[], int, int, CancellationToken)
The WriteAsync method returns a Task-based asynchronous version of OracleBlob.Write().
                  
Declaration
// C# public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken);
Parameters
- 
                        bufferThe byte array buffer that provides the data. 
- 
                        offsetThe 0-based offset (in bytes) from which the buffer is read. 
- 
                        countThe amount of data (in bytes) that is to be written into the OracleBlob.
- 
                        cancellationTokenThe input cancellation token which can be used by the application to cancel the task. 
Return Value
Task object representing the asynchronous operation immediately without blocking the calling thread for the whole duration of the query execution.
                  
Exceptions
- 
                        ObjectDisposedException- The object is already disposed.
- InvalidOperationException- The- OracleConnectionis not open or has been closed during the lifetime of the object
- 
                        ArgumentOutOfRangeException- This exception is thrown if any of the following conditions exist:- 
                              The offset or the count parameter is less than 0. 
- 
                              The offset is greater than or equal to the buffer.Length.
- 
                              The offset and the count together are greater than the buffer.Length.
 
- 
                              
Example
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace AsyncApp
{
  class AsyncDemo
  {
    static async Task Main(string[] args)
    {
      string connectionString = "User Id=HR; Password=<PASSWORD>; Data Source=oracle;";
      OracleConnection oc = new OracleConnection(connectionString);
      await oc.OpenAsync(CancellationToken.None);
      OracleBlob blob = new OracleBlob(oc);
      byte[] writeBuffer = new byte[4] { 1, 2, 3, 4 };
      //Write data to Binary Large Object, asynchronously
      Task task = blob.WriteAsync(writeBuffer, 0, 4, CancellationToken.None);
      //other operations
      Console.WriteLine("Hello World");
      //await for asynchronous WriteAsync
      await task;
      Console.WriteLine("blob.Length  = " + blob.Length);
    }
  }
}