2014-12-28 3 views
1

У меня есть приложение для Windows 8,1, которое использует неопределенные индикаторы прогресса, чтобы показать пользователям, что выполняется запрос . В большинстве случаев запрос заканчивается менее чем за секунду, в результате чего индикатор прогресса отображается на короткое время.WinRT Progress Indicator реализует 500 мс, чтобы предотвратить мерцание

У кого-нибудь есть предложения относительно того, как я должен это реализовать. Я пробовал следующий код из обсуждения this, но он не кажется, что «чистый», потому что я получаю предупреждения о компиляции, что я не использую ключевое слово ожидания.

Task threatScoreTask = Task.Run(async() => 
{ 
    //code  
}); 
Task locationTask = Task.Run(async() => 
{ 
    //code  
}); 
Task results = Task.WhenAll(threatScoreTask, locationTask); 
Task.Delay(500).ContinueWith(async e => 
{ 
    if (!results.IsCompleted) 
     //code to turn on progress bar 
}); 

Любая помощь будет принята с благодарностью. Thanks

+0

Пожалуйста, покажите больше кода. –

ответ

1

На самом деле теперь, когда я думаю об этом, код выглядит отлично.

Если вы хотите избавиться от предупреждения, вы можете присвоить его переменной, как это -

var delay = Task.Delay(5000).ContinueWith(e => 
+0

Но тогда, если задача закончится менее чем за 250 мс, она просто ждет 250 мс. – sidy3d

+1

Отлично, и я предполагаю, что я буду использовать эту задачу задержки, чтобы проверить, должен ли я отключать индикатор прогресса – sidy3d

Смежные вопросы