En Win8, utilizo somefile.CopyAsync (destFolder, newName) para copiar archivos. Pero cuando intento cancelarlo, parece que no funciona. Estos dos métodos son cómo intento para cancelarlo:¿Hay alguna manera de cancelar StorageFile.CopyAsync()?
sólo tiene que utilizar IAsyncOperation.Cancel
var op = somefile.CopyAsync(destFoder, newName); op.Cancel(); op.Complete = (x,y) => { switch(y) { case AsyncStatus.Complete: Debug.WriteLine("Completed" + x.GetResults().Name); break; case AsyncStatus.Cancel: Debug.WriteLine("Canceled") break; } }
uso AsTask (CancellationToken)
var cts = new CancellationTokenSource(); cts.CancelAfter(TimeSpan.FromSeconds(1)); var op = somefile.CopyAsync(destFolder, newName).AsTask(cts.Token); await op;
En primer método , caso AsyncStatus.Cancel no se llama, y en el segundo método, no pasa nada. ¿Hay alguna otra ¿Cómo puedo intentarlo? ¡Gracias!
Gracias por la respuesta, pero segundo método usando CancellationToken no funciona, puse task.AsAsyncAction(). Cancelar() en señal .register area, pero la operación de copia aún se completa, es raro. – seanhc
el primer método tampoco funciona, si agrego 'await task' al botón. – seanhc
seanhc, ¿qué tal si finalmente lo resuelves? – sunjinbo