Anzeige "Warten", Bildschirm in WPF

Ich versuche eine Anzeige bitte warten dialog für einen lange Laufenden Betrieb. Das problem ist, da diese ist single threaded, obwohl ich sagen der WaitScreen anzeigen, das tut Sie nie. Gibt es eine Möglichkeit, die ich ändern kann, die Sicht auf dem Bildschirm und stellen Sie es sofort angezeigt wird? Ich habe die Cursor-Aufrufs als Beispiel. Gleich nachdem ich diesen Aufruf.Cursor der cursor wird sofort aktualisiert. Das ist genau das Verhalten, das ich will.

private void Button_Click(object sender, RoutedEventArgs e)
{
  this.Cursor = System.Windows.Input.Cursors.Pen;
  WaitScreen.Visibility = Visibility.Visible;

  //Do something long here
  for (Int32 i = 0; i < 100000000; i++)
  {
    String s = i.ToString();
  }

  WaitScreen.Visibility = Visibility.Collapsed;
  this.Cursor = System.Windows.Input.Cursors.Arrow; 
}

WaitScreen ist nur ein Raster mit einem Z-index von 99, die ich ein-und ausblenden.

update: ich weiß wirklich nicht wollen, zu einem hintergrund-Arbeiter, es sei denn, ich muss. Es gibt eine Reihe von stellen im code, wo diese starten und anhalten auftreten.

  • Ich war die gleiche, wenn ich versuche zu tun es single-threaded. Denken, können ändern Sie einfach den cursor. Aber es funktionierte nie wirklich.
InformationsquelleAutor Shaun Bowe | 2009-03-05
Schreibe einen Kommentar