Silverlight Подтвердите диалог, чтобы приостановить поток

Я пытаюсь сделать диалог подтверждения, используя SilverlightChildWindow объект.

В идеале я бы хотел, чтобы это работало какMessageBox.Show()где все приложение останавливается до тех пор, пока от пользователя не будет получен ввод.

Например:

for (int i = 0; i < 5; i++)
{
    if (i==3 && MessageBox.Show("Exit early?",
        "Iterator", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
    {
        break;
    }
}

Остановит итерацию на 3, если пользователь нажмет OK ...

Однако, если бы я сделал что-то вроде:

ChildWindow confirm = new ChildWindow();
confirm.Title = "Iterator";
confirm.HasCloseButton = false;
Grid container = new Grid();

Button closeBtn = new Button();
closeBtn.Content = "Exit early";
closeBtn.Click += delegate { confirm.DialogResult = true; confirm.Close(); };
container.Children.Add(closeBtn);

Button continueBtn = new Button();
continueBtn.Content = "Continue!";
continueBtn.Click += delegate { confirm.DialogResult = false; confirm.Close(); };
container.Children.Add(continueBtn);

confirm.Content = container;

for(int i=0;i<5;i++) {
  if (i==3) {
    confirm.Show();
    if (confirm.DialogResult.HasResult && (bool)confirm.DialogResult) {
      break;
    }
  }
}

Это явно не будет работать, так как поток не останавливается ...confirm.DialogResult.HasResult&nbsp;будет ложным, и цикл будет продолжаться после 3.

Мне просто интересно, как я могу сделать это правильно. Silverlight является однопоточным, поэтому я не могу просто уложить нить в спящий режим, а затем разбудить его, когда я буду готов, поэтому мне просто интересно, есть ли что-нибудь еще, что люди могли бы порекомендовать?

Я подумал о том, чтобы изменить логику - то есть передать действия, которые я хочу выполнить, событиям Да / Нет, но в моем конкретном случае это не совсем сработало бы.

Заранее спасибо!