Hola Colegas, tengo una necesidad que no he podido resolver……… les comentare a detalle de que se trata, tengo una aplicación que ejecuta un proceso el cual tarda un buen rato, entonces, me solicitan que ponga el tiempo que lleva transcurrido y pues lo estoy haciendo de la siguiente manera:
Declaro una variable para medir el tiempo con precisión:
Código:
private Stopwatch _Stopwatch;
Hago un metodo para llenar el label que mostrar el tiempo de avance
Código:
private void MuestraVance()
{
TimeSpan _TimeSpan = _Stopwatch.Elapsed;
lblTiempo.Text = String.Format("Tiempo transcurrido {0:00}:{1:00}:{2:00}.{3:000}", _TimeSpan.Hours, _TimeSpan.Minutes, _TimeSpan.Seconds, _TimeSpan.Milliseconds);
}
Luego agrego un Timer a mi pantalla y en su evento Tick mando llamar al evento MuestraVance
Código:
private void tTranscurrido_Tick(object sender, EventArgs e)
{
MuestraVance();
}
Y por ultimo, donde inicia mi proceso haro esto:
Código:
Private sub IniciaProceso()
{
_Stopwatch = new Stopwatch();
_Stopwatch.Start();
ProcesoTardado()
}
Y si jala bien y todo pero mi problema es que mientras el proceso esta ejecutandose, ese que se tarda, el tiempo no avanza, una vez que termina pues si avanza y se ve shido el tiempo corriendo, entonces, pues me gustaria que alguien me explicara con manzanitas eso de los hilos o como puedo maner corriendo el tiempo y a la vez el proceso que se tarda.
Ya me han explicado eso de BackGroundWorker pero no, no doy con bola, entonces ojala alguien tenga la paciencia de explicarme con manzanas algo sencillo, un hilo, un delegado, lo que sea nomas con que jale esto.
Gracias.
PD: Estoy en WinForm con C#