AsyncOperation.PostOperationCompleted(SendOrPostCallback, Object) Yöntem

Tanım

Zaman uyumsuz bir işlemin ömrünü sonlandırır.

public:
 void PostOperationCompleted(System::Threading::SendOrPostCallback ^ d, System::Object ^ arg);
public void PostOperationCompleted(System.Threading.SendOrPostCallback d, object arg);
public void PostOperationCompleted(System.Threading.SendOrPostCallback d, object? arg);
member this.PostOperationCompleted : System.Threading.SendOrPostCallback * obj -> unit
Public Sub PostOperationCompleted (d As SendOrPostCallback, arg As Object)

Parametreler

d
SendOrPostCallback

SendOrPostCallback İşlem sona erdiğinde çağrılacak temsilciyi sarmalayan nesne.

arg
Object

parametresinde yer alan temsilci için d bir bağımsız değişken.

Özel durumlar

OperationCompleted() daha önce bu görev için çağrıldı.

d, null'e eşittir.

Örnekler

Aşağıdaki kod örneği, zaman uyumsuz bir işlemin ömrünü sonlandırmak için yönteminin kullanılmasını PostOperationCompleted gösterir. Bu kod örneği, sınıfı için System.ComponentModel.AsyncOperationManager sağlanan daha büyük bir örneğin parçasıdır.

// This method cancels a pending asynchronous operation.
public void CancelAsync(object taskId)
{
    if (userStateToLifetime[taskId] is AsyncOperation)
    {
        lock (userStateToLifetime.SyncRoot)
        {
            userStateToLifetime.Remove(taskId);
        }
    }
}
' This method cancels a pending asynchronous operation.
Public Sub CancelAsync(ByVal taskId As Object)

    Dim obj As Object = userStateToLifetime(taskId)
    If (obj IsNot Nothing) Then

        SyncLock userStateToLifetime.SyncRoot

            userStateToLifetime.Remove(taskId)

        End SyncLock

    End If

End Sub

Açıklamalar

PostOperationCompleted Zaman uyumsuz bir işlemin ömrünü sonlandırmak için yöntemini çağırın. Bu yöntem belirli bir görev için çağrıldıktan sonra ilgili nesnesine AsyncOperation yapılan çağrılar bir özel durum oluşturur.

parametresi, d görevin tamamlanması, iptali veya başarısız olması nedeniyle görevin ömrü sona erdiğinde sınıfınızın çağırmasını istediğiniz temsilciyi sarmalar. nesnesi, AsyncOperation temsilcinizin uygulama modeline uygun iş parçacığında veya bağlamda çağrılmasını sağlar. Temsilciniz isteğe bağlı olarak istemcilere zaman uyumsuz görevin ömrünün sona erdiğini bildiren bir olay oluşturabilir.

arg parametresi, durum bilgilerini tamamlanma temsilcisine dgeçirmek için kullanılır. Parametre değeri olarak bir AsyncOperation nesne veya System.ComponentModel.AsyncCompletedEventArgs nesne kullanabilirsiniz. Alternatif olarak, ek durum depolama alanı sağlamak istiyorsanız, sınıfından türetdiğiniz bir sınıfın örneğini System.ComponentModel.AsyncCompletedEventArgs kullanabilirsiniz.

Devralanlara Notlar

Devralanların çağrıyı PostOperationCompleted(SendOrPostCallback, Object) zaman uyumsuz hale getirmesi gerekir, böylece sınıf kitaplığı sağlayıcılarının zaman uyumsuz olduğunu varsayan ancak belirli bir uygulama modelinin zaman uyumlu olması durumunda olası yığın taşmalarıyla ilgilenmeleri gerekmez. Yöntemin "yaşam süresi sona eriyor" çağrısı olarak yorumlanması gerekir. Bu, uygulamanın uygulama modeli için uygun olanı yapması gerektiği anlamına gelir. Örneğin, ASP.NET bekleyen zaman uyumsuz işlem sayısını azaltacaktır. Bu ayrıca işlemi, artık tamamlandığından sonraki çağrıların başarısız olacağı bir duruma getirmelidir.

Zaman uyumsuz sınıfları uygulama hakkında daha fazla bilgi için bkz. Olay Tabanlı Zaman Uyumsuz Deseni Uygulama.

Şunlara uygulanır

Ayrıca bkz.