none
Como Saber Cuando Termine Una Función C# RRS feed

  • Pregunta

  • Buenas noches, el motivo de mi mensaje es para que puedan apoyar con un código, mi propósito es que al momento de que termine una función, empiece la siguiente función, el problema es que el código que tengo no hacer ninguna acción, me pueden apoyar a resolver este dilema por favor

    public Inicio()

    {

    var task = Task.Factory.StartNew(() => { AgregarArchivosTemporales(); }, TaskCreationOptions.LongRunning); task.ContinueWith( _ => { Sistema(); }, TaskContinuationOptions.OnlyOnFaulted);

    } public void AgregarArchivosTemporales() { //Ocultamos cargando DoubleAnimation myDoubleAnimation = new DoubleAnimation(); myDoubleAnimation.From = 0; myDoubleAnimation.To = 100; myDoubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(3000)); ContenedorCargandoSistema.BeginAnimation(OpacityProperty, myDoubleAnimation); myDoubleAnimation.Completed += (o, p) => ContenedorCargandoSistema.Visibility = Visibility.Collapsed; } public void Sistema() { //Agregamos el tamaño total de los archivos TextoTamañoSistema.Text = FormatBytes(long.Parse(TamañoTotal.ToString())); }

    De mi parte es todo, gracias



    • Editado Jovanny CJ domingo, 7 de marzo de 2021 10:13
    domingo, 7 de marzo de 2021 10:12

Respuestas

  • Está casi bien como lo tienes, salvo por un pequeño detalle: en el task.ContinueWith has puesto la opción "TaskContinuationOptions.OnlyOnFaulted". Esto significa que el segundo método solo tiene que ejecutarse cuando el primero falla. Si quieres ejecutar el segundo incondicionalmente después del primero, y no solamente cuando éste falle, entonces no debes añadir dicha opción.
    • Marcado como respuesta Jovanny CJ domingo, 7 de marzo de 2021 19:44
    domingo, 7 de marzo de 2021 18:19

Todas las respuestas

  • Está casi bien como lo tienes, salvo por un pequeño detalle: en el task.ContinueWith has puesto la opción "TaskContinuationOptions.OnlyOnFaulted". Esto significa que el segundo método solo tiene que ejecutarse cuando el primero falla. Si quieres ejecutar el segundo incondicionalmente después del primero, y no solamente cuando éste falle, entonces no debes añadir dicha opción.
    • Marcado como respuesta Jovanny CJ domingo, 7 de marzo de 2021 19:44
    domingo, 7 de marzo de 2021 18:19
  • Hola,

    Gracias por confirmar que se ha encontrado una solución a la consulta realizada.

    Gracias por usar los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    lunes, 8 de marzo de 2021 15:06
    Moderador