= $u_time + 86400) { $modifiedDate = get_the_modified_time('F jS, Y'); echo 'Última modificación: '.$modifiedDate.''; } }?>

Async Task que continua con otra Async Task

Al trabajar con métodos asíncronos es posible que en algún momento necesitemos que una tarea se ejecute cuando finalice otra. Esto que es algo muy sencillo puede costar algún tiempo de búsqueda por la red, sobre todo si se es principiante.
Aquí tenéis un pequeño esquema de cómo hacerlo:

Crear 2 tareas. No olvides tener en cuenta el tipo de datos que va a devolver (Task, Task<TResult>)

// Task that test if our data are already charged
private Task  NotAllIsChargedTask { get; set; }
// Task that load our data
private Task LoadDataTask { get; set; }

En este caso la implementación del método que se va a ejecutar cuando acabe la ejecución de la primera tarea comprueba (que nunca esta de más) si la primera tarea ha finalizado y ademas si su resultado es true:

private Task LoadDataMethod()
{
     if (this.NotAllIsChargedTask.IsCompleted && this.NotAllIsChargedTask.Result)
     {
          //do other async task
     }
     return null;
}

Finalmente, la llamada sería la siguiente:

this.NotAllIsChargedTask = this.NotAllIsChargedMethod;
this.NotAllIsChargedTask.ContinueWith(t => this.LoadDataMethod());

Leave a Reply

Your email address will not be published. Required fields are marked *