Affichage du curseur d'attente pendant l'exécution de l'arrière-plan

Lors du démarrage de mon application windows, je dois faire un appel à un service web pour récupérer des données par défaut pour les charger sur mon application. Lors du chargement du formulaire, je lance un backgroundworker pour récupérer ces données. Je veux afficher le curseur d'attente jusqu'à ce que ces données sont récupérées. Comment puis-je faire?

J'ai essayé le réglage du curseur d'attente avant d'appeler le backgroundworker pour s'exécuter. Quand j'ai un rapport de progrès de 100 puis je l'ai mis à la valeur par défaut du curseur. Le curseur d'attente arrive mais quand je bouge la souris, elle disparaît.

Environnement:

  • Windows 7 Pro 64 bits
  • VS2010 C# .NET 4.0
  • Windows Forms

EDIT:
Je suis le réglage du curseur de la façon dont Jay Riggs a suggéré. Il ne fonctionne que si je ne bouge pas la souris.

**Mise à JOUR:
J'ai créé un clic sur un bouton qui est le suivant: Quand je fais le clic sur le bouton et déplacer ma souris, le curseur d'attente apparaît peu importe si je bouge ma souris, ou pas.

void BtnClick()
{
  Cursor = Cursors.WaitCursor;
  Thread.Sleep(8000);
  Cursor = Cursors.Default;
}

Si je fais le suivant: je vois le curseur d'attente et quand je bouge la souris, elle disparaît à l'intérieur de la forme. Si je vais dans ma barre de statut la barre de menu, le curseur d'attente s'affiche.

Cursor = Cursors.WaitCursor;
if (!backgroundWorker.IsBusy)
{
  backGroundWorker.RunWorkerAsync();
}

void backGroundWorkerDoWork(object sender, DoWorkEventArgs e)
{
  Thread.Sleep(8000);
}

void backGroundWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
  Cursor = Cursors.Default;
}

Si je ne les suivants: Le curseur d'attente s'affiche et quand je bouge la souris, elle apparaît toujours mais parfois scintillement et s'éteint en cas de déplacement dans les champs de texte. Bien que le curseur se transforme en curseur d'attente, il ne vous empêche pas de cliquer sur quoi que ce soit.

if (!backgroundWorker.IsBusy)
{
  backGroundWorker.RunWorkerAsync();
}

void backGroundWorkerDoWork(object sender, DoWorkEventArgs e)
{
  UseWaitCursor = true;
  Thread.Sleep(8000);
}

void backGroundWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
  UseWaitCursor = false;
}

source d'informationauteur arc1880