バックグラウンド転送を使用してビデオをダウンロードし、各リクエストの TransferStatusChanged および TransferProgressChanged イベントをサブスクライブして、そのステータスとダウンロードの進行状況を監視しています。BackgroundTransferService.Remove() メソッドを使用して 1 つのバックグラウンド転送要求をキャンセルすると、msdn が言及したように TransferStatusChanged イベントが発生しました。イベント ハンドラーを実行したくないので、以下のコードのように、リクエストを削除する前にイベントのサブスクライブを解除しようとします。
BackgroundTransferRequest transferToRemove = BackgroundTransferService.Find(requestId);
if (transferToRemove != null)
{
transferToRemove.TransferStatusChanged -= transfer_TransferStatusChanged;
transferToRemove.TransferProgressChanged -= transfer_TransferProgressChanged;
BackgroundTransferService.Remove(transferToRemove);
}
ただし、TransferStatusChanged イベント ハンドラーは引き続き発生します。誰でも私を助けることができますか?