Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // OrtizOL - xCSw - http://ortizol.blogspot.com
  2.  
  3. using System;
  4. using System.IO;
  5. using System.Threading;
  6.  
  7. namespace Receta.Multithreading.R0301
  8. {
  9.     public class DemoLecturaAsincronica
  10.     {
  11.         public static void Main()
  12.         {
  13.             Console.WriteLine(Environment.NewLine);
  14.            
  15.             // Creación de archivo de texto para prueba:
  16.             using (FileStream fs = new FileStream("ArchivoPrueba.txt", FileMode.Create))
  17.             {
  18.                 fs.SetLength(100000);
  19.             }
  20.            
  21.             // Procesamiento asincrónico del archivo de texto en un
  22.             // thread independiente:
  23.             ProcesadorLecturaAsincronica plASync = new ProcesadorLecturaAsincronica("ArchivoPrueba.txt");
  24.             plASync.IniciarLectura();
  25.            
  26.             // Mientras que el thread de lectura asincrónica se ejecuta,
  27.             // en `Main` se ejecutan otras tareas:
  28.             DateTime tiempoInicio = DateTime.Now;
  29.             while( DateTime.Now.Subtract(tiempoInicio).TotalSeconds < 2)
  30.             {
  31.                 Console.WriteLine("[Thread `Main`]: Ejecutando otras operaciones...");
  32.                
  33.                 // Pausa para simular una tarea de consumo de
  34.                 // tiempo en `Main`:
  35.                 Thread.Sleep(TimeSpan.FromMilliseconds(100));
  36.             }
  37.            
  38.             Console.WriteLine("[Thread `Main`]: Finalizado.");
  39.             Console.ReadLine();
  40.            
  41.             // Eliminación del archivo de prueba:
  42.             File.Delete("ArchivoPrueba.txt");
  43.            
  44.             Console.WriteLine(Environment.NewLine);
  45.         }
  46.     }
  47. }