Task.Factory.StartNewを使用してWP7で非同期作業を行うことを検討してください。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";
}
});
ContinueWith 句は、最初のタスクの本体が完了した後に発生する別のメソッドをチェーンします (何らかの方法で)。ContinueWith メソッドのパラメーター 'result' は、ContinueWith がチェーンされている Task であり、タスク 'result' には Result というプロパティがあり、前のタスクによって提供される戻り値です。