Al trabajar con múltiples threads en C# tarde o temprano nos encontraremos en la necesidad de utilizar objetos que puedan ser compartidos por múltiples threads.
Como es de suponer, es necesario hacer uso de un candado que permita que un sólo thread a la vez tenga permiso de escritura sobre el objeto en cuestión.
En el .NET 1.1 esto se hacía de la siguiente forma:
Monitor.Enter(objeto);
try
{
//Código aquí.
}
catch (Exception e)
{
//Manejo de excepciones aquí.
}
finally
{
Monitor.Exit(objeto);
}
En el .NET 2.0 ahora puede utilizarse la palabra reservada lock para hacer uso de la misma funcionalidad de la siguiente forma:
lock(objeto)
{
//Código aquí.
}
Lo que hace la palabra lock es exactamente lo mismo que el código anterior, sólo que este hace las llamadas al objeto Monitor automáticamente, de manera que el objeto sea siempre liberado, y así no tener que preocuparse por liberarlo uno mismo, aparte que reduce la cantidad de líneas de código.








Recent Comments