In Win8, utilizzo somefile.CopyAsync (destFolder, newName) per copiare i file. Ma quando provo a cancellarlo, sembra che non funzioni. Questi due metodi sono come provo a cancellarlo:C'è un modo per cancellare StorageFile.CopyAsync()?
basta usare 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;
In primo metodo , il caso AsyncStatus.Cancel non viene chiamato, e nel secondo metodo, non succede nulla. C'è qualche altra cosa posso provare? Grazie!
grazie per la risposta, ma secondo metodo utilizza CancellationToken non funziona, ho messo task.AsAsyncAction(). Annulla() in segno .area di registrazione, ma l'operazione di copia ancora completa, quindi strano. – seanhc
anche il primo metodo non funziona, se aggiungo 'attendi compito' a buttom. – seanhc
seanhc, che ne dici di risolverlo finalmente? – sunjinbo