Как сделать паузу, не блокируя интерфейс

У меня есть событие щелчка, которое вызывает вибрацию телефона после нажатия кнопки. Обычно это прекрасно работает, за исключением того, что иногда вибрация не прекращается, пока я полностью не закрою приложение. Я хотел бы дать приложению время для завершения его вибрации, а затем продолжить с остальной частью метода, но я не хочу блокировать пользовательский интерфейс вообще. Как я могу сделать это

MainPage.xaml.cs

void newButton_Click(object sender, EventArgs e)
{
    //Button vibration
    if (Settings.EnableVibration.Value)  //boolean flag to tell whether to vibrate or not
    {
        VibrateController.Default.Start(TimeSpan.FromMilliseconds(100));
        //place vibration stop here?
    }        

    this.NavigationService.Navigate(new uri("/NewPage.xaml", UriKind.Relate)); 
}

Я уже пробовал VibrationController.Default.Stop (); но это полностью устраняет вибрации все вместе. Есть ли способ просто дождаться окончания вибрации, чтобы перейти на новую страницу, или выполнить любое другое действие, которое должен выполнить метод? Любые рекомендации или советы по этой реализации или другие предложения?

Ответы на вопрос(2)

Ваш ответ на вопрос