En el siguiente ejemplo puede ver otra de las características del .NET Framework. Puede usar la clase ThreadCurrentThread para buscar información acerca del hilo que se encuentra en ejecución, lo que se conoce como execution context. Esta propiedad le permite acceder a propiedades como:
- La current culture, CultureInfo asociado al hilo es usado para el formato de fechas, convenciones de casing y comparación de cadenas.
- principal (que representa el contexto de seguridad en uso)
- priority, el valor que indica como el hilo debería ser programado por el sistema operativo.
Cuando un hilo es creado, el motor de ejecución asegura que el contexto de ejecución del hilo principal se propague al nuevo hilo. De esta forma el nuevo hilo tiene los mismos privilegios que el hilo principal.
La copia de los datos tiene un costo sobre los recursos, sin embargo, si usted no necesita estos datos, puede deshabilitar este comportamiento usando el método ExecutionContext.SuppressFlow.
Ejemplo.
using System;
using System.Threading;
namespace UsingThreadLocal
{
class Program
{
public static ThreadLocal<int> _variableHiloLocal =
new ThreadLocal<int>(() =>
{
return Thread.CurrentThread.ManagedThreadId;
});
static void Main(string[] args)
{
new Thread(() =>
{
Console.WriteLine("Valor de _variableHiloLocal para hilo A {0}", _variableHiloLocal.Value);
for (int i = 0; i < _variableHiloLocal.Value; i++)
{
Console.WriteLine("Primer hilo A: {0}", i);
}
}).Start();
new Thread(() =>
{
Console.WriteLine("Valor de _variableHiloLocal para hilo B {0}", _variableHiloLocal.Value);
for (int i = 0; i < _variableHiloLocal.Value; i++)
{
Console.WriteLine("Segundo hilo B: {0}", i);
}
}).Start();
Console.ReadKey();
}
}
}
Ejemplo de resultado:
Referencias:
Exam Ref 70-483 Programming in C#
Referencias Internet:
https://msdn.microsoft.com/en-us/library/dd642243(v=vs.110).aspx

No hay comentarios.:
Publicar un comentario