En fait,
Cursor.Current = Cursors.WaitCursor;
temporairement définit le curseur d'attente, mais ne garantit pas que le curseur d'attente s'affiche jusqu'à la fin de votre opération. D'autres programmes ou commandes au sein de votre programme peuvent facilement ramener le curseur sur la flèche par défaut, comme cela se produit en fait lorsque vous déplacez la souris alors que l'opération est toujours en cours.
Une bien meilleure façon d'afficher le curseur d'attente est de définir la propriété UseWaitCursor d'un formulaire sur true :
form.UseWaitCursor = true;
Cela affichera le curseur d'attente pour tous les contrôles du formulaire jusqu'à ce que vous définissiez cette propriété à false. Si vous voulez que le curseur d'attente soit affiché au niveau de l'application, vous devez utiliser la propriété :
Application.UseWaitCursor = true;