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ı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 d
geç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.