2010-11-30 13 views
0

J'utiliseComment savoir si un travail de copie est terminé?

File.Copy(source, dest); 

je dois savoir quand ce travail de copie se fait le traitement afin qu'il puisse passer à une autre tâche.

Y at-il une fonction de rappel que je pourrais utiliser dans ce cas particulier?

+0

double possible de [Comment puis-je retarder un programme de vb.net jusqu'à ce qu'une opération de fichier complète ?] (http://stackoverflow.com/questions/437396/how-do-i-delay-a-vb-net-program-until-a-file-operation-completes) –

+0

Je vous ai donné du code pour vous aider ... – Achilles

Répondre

6

File.Copy n'est pas asynchrone. Il a terminé lorsque l'appel se termine.

1

Est-ce que File.Copy n'est pas une méthode de blocage? Il devrait attendre sur cette ligne jusqu'à ce que la copie du fichier soit terminée puis continuer l'exécution.

2

File.Copy est bloqué, l'exécution doit attendre que l'opération soit terminée.

+1

* est * bloquant, sûrement? –

+0

Ahh stupide typo :) –

0

Voici un code pour faire ce que vous avez besoin ... parce que je suis génial :-) cette façon

dim FileCopyDelegate as new Delegate = addressof File.Copy 

dim oListOfParams as new List(of string) 

oListOfParams.add(source) 
oListOfParams.add(destination) 

FileCopyDelegate.begininvoke(oListOfParams, addressof CallBackMethod) 'creates an async thread to do the file copy