0

UI から、次Taskのようなを作成します。

Task taskCancellaCartellaDestinazione = Task.Factory.StartNew(() => CancellaCartellaDestinazione(), CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default);
taskCancellaCartellaDestinazione.ContinueWith(t => TaskGestioneCartelle(), CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());

それぞれTaskに独自の変数名があるため、直接アクセスできます。それらのリソースを停止して解放するにはどうすればよいですか?

stop をクリックした場合Buttonなど、スレッドを停止する必要があります。

または関数taskCancellaCartellaDestinazioneが表示されません。Abort()Cancel()

4

1 に答える 1

2
  1. CancellationTokenSourceタスクを開始する直前に を作成します。

  2. CancellationTokenをトークン ソースから に渡しますCancellaCartellaDestinazione

  3. の本体でCancellaCartellaDestinazione、キャンセル トークンがキャンセルを要求したかどうかを定期的に確認します。ほとんどの場合、呼び出しThrowIfCancellationRequested()が適切です。

  4. StartNewそのキャンセル トークンをの代わりに渡しますCancellationToken.None

  5. タスクをキャンセルする場合は、 を呼び出しCancelますCancellationTokenSource

于 2013-04-19T14:48:53.327 に答える