Рассмотрите возможность использования асинхронной работы с WP7 с помощью Task.Factory.StartNew. Вы можете использовать CancellationTokens для отмены отмены. Вот как я делаю свою асинхронную работу. Реализовать прерывание, вы можете сделать следующее (с помощью задач):
var task = Task.Factory.StartNew(()=>
{
// some operation that will be cancelled
return "some value";
})
.ContinueWith(result =>
{
if(result.Status == TaskStatus.Cancelled) // you have other options here too
{
// handle the cancel
}
else
{
string val = result.Result; // will be "some value";
}
});
The ContinueWith Пункт цепь другого способ произойти после того, как тело первой задачи завершается (так или иначе). Параметр «результат» для метода ContinueWith - это задача, к которой привязана цепочка ContinueWith, и есть свойство «Результат» результата задачи, которое представляет собой любое возвращаемое значение, предоставленное предыдущей задачей.