Advertisement
Fhernd

AccesoBaseDatosMutex.cs

Jul 23rd, 2014
1,919
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.80 KB | None | 0 0
  1. using System;
  2. using System.Threading;
  3.  
  4. namespace Recetas.CSharp.Cap04.R0409
  5. {
  6.     public class BaseDeDatos
  7.     {
  8.         private static Mutex mutex = new Mutex();
  9.        
  10.         public static void EscribirDatos(string datos)
  11.         {
  12.             // Bloqueo y posesión del recurso compartido:
  13.             mutex.WaitOne();
  14.            
  15.             Console.WriteLine ("La ejecución de `EscribirDatos` ha iniciado.");
  16.             Console.WriteLine ("`EscribirDatos` en ejecución...");
  17.             for (int i = 1; i <= 10; ++i)
  18.             {
  19.                 Thread.Sleep (100);
  20.                 Console.WriteLine (datos);
  21.             }
  22.             Console.WriteLine ("\n`EscribirDatos` ha terminado.");
  23.             mutex.ReleaseMutex();
  24.         }
  25.     }
  26.    
  27.     public sealed class AccesoBaseDatosMutex
  28.     {
  29.         public static void Main()
  30.         {
  31.             Console.Title = "Acceso a Base de Datos Sincronizado con Mutex";
  32.             Console.WriteLine ();
  33.            
  34.             // Crea dos threads:
  35.             Thread t1 = new Thread (TareaEscribirDatos1);
  36.             Thread t2 = new Thread (TareaEscribirDatos2);
  37.            
  38.             t1.Start();
  39.             t2.Start();
  40.            
  41.             Console.WriteLine ();
  42.         }
  43.        
  44.         private static void TareaEscribirDatos1()
  45.         {
  46.             Console.WriteLine ("Primera tarea de escribir datos iniciada.");
  47.             BaseDeDatos.EscribirDatos ("Blog");
  48.             Console.WriteLine ("La tarea no. 1 ha finalizado");
  49.         }
  50.        
  51.         private static void TareaEscribirDatos2()
  52.         {
  53.             Console.WriteLine ("Segunda tarea de escribir datos iniciada.");
  54.             BaseDeDatos.EscribirDatos ("xCSw");
  55.             Console.WriteLine ("La tarea no. 2 ha finalizado");
  56.         }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement