2015-04-16 4 views
0

Я использую Contacts.SearchAsync для получения всех контактов пользователя в приложении WP8. Но я понял, что, когда у пользователя много контактов (например, 1000+), этот поиск занимает много времени ...Как отменить Contacts.SearchAsync перед завершением поиска в WP8

Итак, я подумывал добавить кнопку, поэтому у пользователя есть возможность отменить это поиск ...

Но я не мог найти какой-либо метод, который отменяет этот поиск ...

есть ли способ, чтобы отменить ее, прежде чем она заканчивается?

спасибо

ответ

0

Я не использовал это, но есть обходное решение.

Если поток завершен, все его дочерние потоки также завершены.

Поэтому, если вы запустите этот метод в новом потоке, вы всегда можете его прекратить.

0

Я не знаю, как отменить поиск, но альтернативный подход - просто проигнорировать завершение поиска.

void Contacts_SearchCompleted(object sender, ContactsSearchEventArgs e) 
{ 
    if (!searchWasCancelled) 
    { 
     // Process the search results 
    } 
} 
+0

но не работает _Contacts_SearchCompleted_ только после завершения поиска контактов? –

+0

Да, но метод Contacts.SearchAsync выполняется асинхронно (т. Е. В фоновом режиме), поэтому ваше приложение может продолжать действовать так, как будто поиск никогда не происходил. Вы даже можете начать второй поиск (например, если хотите предоставить дополнительные критерии) и обрабатывать результаты только второго поиска! – John