Async.OnCancel Yöntemi (F#)
Zaman uyumsuz bir iş akışı içinde kullanmak için kapsamlı, ortak iptal işleyicisi oluşturur.
Ad alanı/modül yolu: Microsoft.FSharp.Control
Derleme: FSharp.Core (FSharp.Core.dll),
// Signature:
static member OnCancel : (unit -> unit) -> Async<IDisposable>
// Usage:
Async.OnCancel (interruption)
Parametreler
Dönüş Değeri
Bırakılmadan önce iptal edilirse özel durumu tetikleyecek bir zaman uyumsuz hesaplama.
Notlar
Örneğin, aşağıdaki kod bir zaman uyumsuz hesaplaması oluşturur nerede, zaman uyumsuz hesaplaması kapsamında yürütülmesi sırasında istediğiniz zaman bir iptal olursa holder, daha sonra eylemi interruption iptal işlemini gerçekleştiren iş parçacığında yürütülür. Bu zaman uyumsuz olarak bildirilmesini hesaplaması için düzenlemek için bir iptal bildirimi, örneğin, bir bayrağı ayarlayarak veya bekleyen bir g/Ç eylem kaydı siliniyor oluştuğunu kullanılabilir.
async { use! holder = Async.OnCancel interruption ... }
Örnek
Aşağıdaki kod örneği kullanımını gösterir Async.OnCancel.
// This is a simulated cancellable computation. It checks the token source
// to see whether the cancel signal was received.
let computation (tokenSource:System.Threading.CancellationTokenSource) =
async {
use! cancelHandler = Async.OnCancel(fun () -> printfn "Canceling operation.")
// Async.Sleep checks for cancellation at the end of the sleep interval,
// so loop over many short sleep intervals instead of sleeping
// for a long time.
while true do
do! Async.Sleep(100)
}
let tokenSource1 = new System.Threading.CancellationTokenSource()
let tokenSource2 = new System.Threading.CancellationTokenSource()
Async.Start(computation tokenSource1, tokenSource1.Token)
Async.Start(computation tokenSource2, tokenSource2.Token)
printfn "Started computations."
System.Threading.Thread.Sleep(1000)
printfn "Sending cancellation signal."
tokenSource1.Cancel()
tokenSource2.Cancel()
// Wait for user input to prevent application termination.
System.Console.ReadLine() |> ignore
Çıktı
Platformlar
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Sürüm Bilgisi
F# Çekirdek Kitaplığı sürümleri
Desteklenen: 2.0, 4.0, Portable