Problema Hilos VS 2005

14/01/2007 - 17:09 por Alhambra-Eidos | Informe spam
Hola a todos,

tenía este código para un proyecto de vs2003 y funcionaba. Lo he llevado a
vs2005 y en depuración me falla
//Error de depuración: "Operación no válida a través de subprocesos: Se tuvo
acceso al control 'nombre de control' desde un subproceso distinto de aquel
en que lo creó".

He visto que había un flag para que se comportara como vs2003, pero si en
vs2005 lo hacen de cierta forma, quiero hacerlo así.

Qué tendría que cambiar en el código ?? Me comentaron que las asignaciones
de valores a los controles hay que evitarlas hacer directamente.
Tengo estos controles, this.bytesDownloadedTextBox, progressBar,
totalBytesTextBox.

Existe una forma genérica de hacerlo ?

Gracias

private void DownloadProgressCallback ( int bytesSoFar, int totalBytes )
{

try
{
this.bytesDownloadedTextBox.Text =
bytesSoFar.ToString("#,##0"); // Problema de subprocesos

if (totalBytes != -1)
{
progressBar.Minimum = 0;
progressBar.Maximum = totalBytes;
progressBar.Value = bytesSoFar;
totalBytesTextBox.Text = totalBytes.ToString("#,##0");
}
else
{
progressBar.Visible = false;
totalBytesTextBox.Text = "Total File Size Not Known";
}
}
catch (Exception ex)
{
Console.WriteLine("Error DownloadProgressCallback " +
ex.Message);
}
}


http://www.alhambra-eidos.com/web2005/index.html
 

Leer las respuestas

#1 Octavio Hernandez
14/01/2007 - 18:31 | Informe spam
Hola,

Mira este artículo del Guille:

http://www.elguille.info/NET/vs2005...o_hilo.htm

Slds - Octavio


"Alhambra-Eidos" escribió en el
mensaje news:
Hola a todos,

tenía este código para un proyecto de vs2003 y funcionaba. Lo he llevado a
vs2005 y en depuración me falla
//Error de depuración: "Operación no válida a través de subprocesos: Se
tuvo
acceso al control 'nombre de control' desde un subproceso distinto de
aquel
en que lo creó".

He visto que había un flag para que se comportara como vs2003, pero si en
vs2005 lo hacen de cierta forma, quiero hacerlo así.

Qué tendría que cambiar en el código ?? Me comentaron que las asignaciones
de valores a los controles hay que evitarlas hacer directamente.
Tengo estos controles, this.bytesDownloadedTextBox, progressBar,
totalBytesTextBox.

Existe una forma genérica de hacerlo ?

Gracias

private void DownloadProgressCallback ( int bytesSoFar, int totalBytes )
{

try
{
this.bytesDownloadedTextBox.Text > bytesSoFar.ToString("#,##0"); // Problema de subprocesos

if (totalBytes != -1)
{
progressBar.Minimum = 0;
progressBar.Maximum = totalBytes;
progressBar.Value = bytesSoFar;
totalBytesTextBox.Text =
totalBytes.ToString("#,##0");
}
else
{
progressBar.Visible = false;
totalBytesTextBox.Text = "Total File Size Not
Known";
}
}
catch (Exception ex)
{
Console.WriteLine("Error DownloadProgressCallback " +
ex.Message);
}
}


http://www.alhambra-eidos.com/web2005/index.html

Preguntas similares