AsyncOperation.PostOperationCompleted(SendOrPostCallback, Object) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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.