AsyncOperation.PostOperationCompleted(SendOrPostCallback, Object) Metódus

Definíció

Egy aszinkron művelet élettartamának vége.

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)

Paraméterek

d
SendOrPostCallback

Egy SendOrPostCallback objektum, amely körbefuttatja a delegáltat, hogy meghívja a művelet befejezésekor.

arg
Object

A paraméterben található delegált argumentuma d .

Kivételek

OperationCompleted() korábban már meghívták ehhez a feladathoz.

Példák

Az alábbi példakód egy aszinkron művelet élettartamának befejezéséhez használja PostOperationCompleted a metódust. Ez a példakód egy nagyobb, az System.ComponentModel.AsyncOperationManager osztályhoz tartozó példa része.

// 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

Megjegyzések

Az aszinkron PostOperationCompleted művelet élettartamának befejezéséhez hívja meg a metódust. Miután ezt a metódust meghívta egy adott tevékenységre, a megfelelő AsyncOperation objektumra irányuló hívások kivételt képeznek.

A d paraméter körbefuttatja azt a meghatalmazottat, amelyet az osztály meghív, amikor a tevékenység élettartama a tevékenység befejezése, lemondása vagy meghiúsulása miatt véget ér. Az AsyncOperation objektum biztosítja, hogy a meghatalmazott az alkalmazásmodellnek megfelelő szálon vagy környezetben legyen meghívva. A meghatalmazott opcionálisan létrehozhat egy eseményt, amely értesíti az ügyfeleket, hogy az aszinkron tevékenység élettartama véget ért.

A arg paraméter az állapotinformációk átadására szolgál a befejezési meghatalmazottnak d. Paraméterértékként objektumot vagy objektumot AsyncOperation is használhatSystem.ComponentModel.AsyncCompletedEventArgs. Másik lehetőségként, ha további állapottárolót szeretne biztosítani, használhatja az osztályból származó osztály egy példányát System.ComponentModel.AsyncCompletedEventArgs .

Megjegyzések az öröklőkhöz

Az öröklőknek aszinkronvá kell tenniük a PostOperationCompleted(SendOrPostCallback, Object) meghívást, hogy az osztálykódtár-szolgáltatóknak ne kelljen foglalkozniuk a lehetséges verem-túlcsordulásokkal, ha aszinkront feltételeznek, de egy adott alkalmazásmodell szinkron. A metódust úgy kell értelmezni, mint egy "élettartam-lezáró" hívást, ami azt jelenti, hogy az implementációnak azt kell tennie, ami az alkalmazásmodellnek megfelelő. A ASP.NET például meg fogja csökkenni a függőben lévő aszinkron műveletek számát. Ennek emellett olyan állapotba kell helyeznie a műveletet, hogy a későbbi hívások sikertelenek lesznek, mivel az már befejeződött.

Az aszinkron osztályok implementálásával kapcsolatos további információkért lásd az eseményalapú aszinkron minta implementálását.

A következőre érvényes:

Lásd még