Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- namespace Recetas.CSharp.Cap04.R0409
- {
- public class BaseDeDatos
- {
- private static Mutex mutex = new Mutex();
- public static void EscribirDatos(string datos)
- {
- // Bloqueo y posesión del recurso compartido:
- mutex.WaitOne();
- Console.WriteLine ("La ejecución de `EscribirDatos` ha iniciado.");
- Console.WriteLine ("`EscribirDatos` en ejecución...");
- for (int i = 1; i <= 10; ++i)
- {
- Thread.Sleep (100);
- Console.WriteLine (datos);
- }
- Console.WriteLine ("\n`EscribirDatos` ha terminado.");
- mutex.ReleaseMutex();
- }
- }
- public sealed class AccesoBaseDatosMutex
- {
- public static void Main()
- {
- Console.Title = "Acceso a Base de Datos Sincronizado con Mutex";
- Console.WriteLine ();
- // Crea dos threads:
- Thread t1 = new Thread (TareaEscribirDatos1);
- Thread t2 = new Thread (TareaEscribirDatos2);
- t1.Start();
- t2.Start();
- Console.WriteLine ();
- }
- private static void TareaEscribirDatos1()
- {
- Console.WriteLine ("Primera tarea de escribir datos iniciada.");
- BaseDeDatos.EscribirDatos ("Blog");
- Console.WriteLine ("La tarea no. 1 ha finalizado");
- }
- private static void TareaEscribirDatos2()
- {
- Console.WriteLine ("Segunda tarea de escribir datos iniciada.");
- BaseDeDatos.EscribirDatos ("xCSw");
- Console.WriteLine ("La tarea no. 2 ha finalizado");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement