2016-10-25 5 views
0

私はwpf C#アプリケーションで作業しています。私は、線を描いた後、UIをブロックすることなく1秒の遅延をします。線を引いた後に遅らせるには?

私の描画機能はここにある:

private void DrawLine(int serviceTime, string lineName) 
    { 
     while (serviceTime != 0) 
     { 
      (this[lineName] as ObservableCollection<Line>).Add(new Line { X1 = x1, Y1 = y1, X2 = x2, Y2 = y2 }); 

      //Delay Code 

      x1 += 10; 
      x2 += 10; 
      serviceTime--; 
     } 
     ResetXY(); 
    } 
+2

は '' Task.Delay(1000)を待ちます。しかし、メソッドを非同期にする必要があります。 –

+0

@NiyokoYuliawanあなたの提案で先入れ先出しアルゴリズムが動作しない – Mohammad

+0

なぜ機能しないのですか?あなたは精緻化できますか? –

答えて

0

私は私の問題を解決するためにDevExpress社MVVMディスパッチャを使用しました。

private void DrawLine(int serviceTime, string lineName) 
    { 
     while (serviceTime != 0) 
     { 
      DispatcherService.BeginInvoke(() => 
      { 
        (this[lineName] as ObservableCollection<Line>).Add(new Line { X1 = x1, Y1 = y1, X2 = x2, Y2 = y2 }); 
      }); 
      x1 += 10; 
      x2 += 10; 
      serviceTime--; 
      Thread.Sleep(500); 
     } 
     ResetXY(); 
    } 
関連する問題