1

誰かがこのループが「壊れない」理由を説明して、永遠に続くことができますか?プログラムにステータスを再確認するように指示するにはどうすればよいですか?私がやりたいのは、ステータスが変わるまで進行しないことです。ありがとう

DispatcherOperation dis = null;
for (int i = 0; i < 2; i++)
{
    updateTextBox(i.ToString());
    dis = Dispatcher.BeginInvoke(DispatcherPriority.Send, new Action(delegate
        {
            //yes, do nothing at all!!
        }
    ));
}

while(dis.Status != DispatcherOperationStatus.Completed)
{                 
}
4

1 に答える 1

4

ディスパッチャが実行されるのと同じスレッドでこれを実行している場合、無限の、ゆるぎないループは、ディスパッチャがコールをディスパッチできないように効果的にシャットアウトします。とにかくこのようにループするべきではありません-少なくともループにスリープを入れてください。

于 2012-06-14T18:55:36.107 に答える