Freigeben über


DispatcherQueueController.ShutdownQueueAsync Methode

Definition

Beendet asynchron die DispatcherQueue , die diesem DispatcherQueueController zugeordnet ist, und beendet den Thread, wenn der DispatcherQueueController von CreateOnDedicatedThread erstellt wurde.

Diese Methode gibt (ein asynchroner Vorgang) zurück, sobald der Herunterfahrvorgang gestartet wird. Der asynchrone Vorgang wird jedoch erst abgeschlossen, wenn der Vorgang zum Herunterfahren abgeschlossen ist.

public:
 virtual IAsyncAction ^ ShutdownQueueAsync() = ShutdownQueueAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction ShutdownQueueAsync();
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction ShutdownQueueAsync();
function shutdownQueueAsync()
Public Function ShutdownQueueAsync () As IAsyncAction

Gibt zurück

Ein asynchroner Vorgang, der abgeschlossen wird, nachdem die Warteschlange ihre gesamte verbleibende Arbeit verteilt hat.

Attribute

Beispiele

// Shut down the event loop.
public async void ShutdownLoop()
{
    if (_queueController != null)
    {
        // The await will complete after the event loop exits.
        await _queueController.ShutdownQueueAsync();
        _queueController = null;
        _queue = null;
    }
}

// Another class that has access to the dedicated thread's DispatcherQueue.
public class ModuleA
{
    public async void ShutdownSetup()
    {
        // Gets the DispatcherQueue for the dedicated thread.

        // Invoked when the controller begins the ShutdownQueueAsync.
        _dispatcherQueue.ShutdownStarting += (s, e) =>
        {
            // Queue is shutting down, do this last operation which
            // will update state before the loop exits.
            _queue.TryEnqueue(
                () =>
                {
                    FinalInThreadCleanup(_myState);
                });
        };

        // Invoked after the DispatcherQueue event loop exits.
        _dispatcherQueue.ShutdownCompleted += (s, e) =>
        {
            CleanUp(_myState);
        };
    }
}

Hinweise

Wenn Sie ShutdownQueueAsync aufrufen, werden die folgenden Ereignisse in dieser Reihenfolge ausgelöst:

Diese Ereignisse sind Mitglieder des DispatcherQueue-Objekts , und ihr Zweck besteht darin, Listener zu benachrichtigen, dass dispatcherQueue heruntergefahren wird. Die Ereignisse werden in dem Thread ausgelöst, der die DispatcherQueue-Ereignisschleife selbst ausführt.

Gilt für: