Mega Code Archive

 
Categories / C# Tutorial / Thread
 

Synchronous Writing, Asynchronous Reading

using System; using System.IO; using System.Threading; class MainClass {     static FileStream BinaryFile = new FileStream("test.dat", FileMode.Create, FileAccess.ReadWrite);     static byte[] ByteArray = new byte[256];     static IAsyncResult AsyncResultImplementation = null;     static AsyncCallback ReadBytesCompleteCallback = new AsyncCallback(OnReadBytesComplete);     public static void OnReadBytesComplete(IAsyncResult AsyncResult)     {         int BytesRead;         BytesRead = BinaryFile.EndRead(AsyncResult);         Console.WriteLine(BytesRead);         for (int i = 0; i < 256; i++)         {             if (ByteArray[i] != (byte)i)             {                 Console.WriteLine("Read test failed for byte at offset {0}.", i);             }         }     }     static public void Main()     {         for (int i = 0; i < 256; i++)             ByteArray[i] = (byte)i;         BinaryFile.Write(ByteArray, 0, 256);         BinaryFile.Seek(0, SeekOrigin.Begin);         AsyncResultImplementation = BinaryFile.BeginRead(ByteArray, 0, 256, ReadBytesCompleteCallback, null);         WaitHandle WaitOnReadIO = AsyncResultImplementation.AsyncWaitHandle;         WaitOnReadIO.WaitOne();     } }