¿Cuál es el propósito de ExecutionContext.SuppressFlow();
? En el siguiente código , ¿qué es exactamente suprimido?ExecutionContext of Threads
tengo este código de prueba ...
protected void btnSubmit_Click(object sender, EventArgs e)
{
Thread[] th = new Thread[100];
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB");
AsyncFlowControl cntrl = ExecutionContext.SuppressFlow();
for (int i = 0; i < th.Length; i++)
{
th[i] = new Thread(new ParameterizedThreadStart(ThreadMethod));
th[i].Name = "Thread #" + (i+1).ToString();
th[i].Start((i+1).ToString());
}
ExecutionContext.RestoreFlow();
foreach (Thread t in th)
{
t.Join();
}
Response.Write(response);
}
String response = null;
Random rnd = new Random(1000);
private void ThreadMethod(object param)
{
if (param != null)
{
string temp = param as string;
if (temp != null)
{
//To test what is the current culture I get for this thread execution
System.Globalization.CultureInfo info = Thread.CurrentThread.CurrentCulture;
for (int i = 0; i <= 10; i++)
{
Thread.Sleep(rnd.Next(2000));
response += Thread.CurrentThread.ManagedThreadId.ToString() + ":"
+ Thread.CurrentThread.Name + ": " + temp + "<br/>";
}
}
}
}
Está escrito en el libro de la Fundación de Desarrollo de Aplicaciones que, "Por defecto, el contexto de ejecución fluye a hilos auxiliares, pero lo hace a un costo. Si desea detener el flujo de información de contexto (aumentando el rendimiento pero perdiendo la seguridad actual, CULTURA y la información de contexto de transacción), puede usar la clase ExecutionContext. ", ** @ nobugz: ** ¿Podría explicar esto amablemente? –
* Cultura * significa información como el idioma actual del subproceso, moneda o representación numérica, etc. – serhio
** @ serhio: ** Sí y esto está contenido en CultureInfo, por lo que significa que si suprimimos y cambiamos la cultura no se obtendrá reenviado a los hilos que se crean en este ámbito? y si no suprimimos, ¿pasará por los hilos de ayuda? Sin embargo, en el código anterior, ya sea que suprima o no, la cultura de los hilos es siempre en-EE. UU., Que es la máquina predeterminada. –