Share via


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ılmak üzere 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 değeridir.

Örnekler

Aşağıdaki kod örneği, zaman uyumsuz bir işlemin ömrünü sonlandırmak için yönteminin kullanımı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)
{
    AsyncOperation asyncOp = userStateToLifetime[taskId] as AsyncOperation;
    if (asyncOp != null)
    {   
        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. Belirli bir görev için bu yöntem çağrıldıktan sonra, ilgili AsyncOperation nesnesine 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 modeli için 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 tamamlama 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

Sınıf kitaplığı sağlayıcılarının PostOperationCompleted(SendOrPostCallback, Object) zaman uyumsuz olduğunu varsayan ancak belirli bir uygulama modelinin zaman uyumlu olduğu varsayılırsa, sınıf kitaplığı sağlayıcılarının olası yığın taşmalarıyla ilgilenmeleri gerekmemesi için, devralıcıların çağrıyı zaman uyumsuz hale getirmesi gerekir. Yöntemin "yaşam süresi sona eriyor" çağrısı olarak yorumlanması gerekir; başka bir deyişle uygulamanın uygulama modeli için uygun olanı yapması gerekir. Örneğin, ASP.NET bekleyen zaman uyumsuz işlem sayısını azaltacaktır. Bu işlem 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.