Taal

DispatchSource Klas

Definitie

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

public class DispatchSource : CoreFoundation.DispatchObject
type DispatchSource = class
    inherit DispatchObject
Overname
Afgeleid

Opmerkingen

Verzend gebeurtenisbronnen kunnen worden gebruikt voor het bewaken van verschillende systeemobjecten en gebeurtenissen, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.  Als u een specifiek type bron wilt bewaken, maakt u een exemplaar van een van de DispatchSource-subklassen:

Wanneer er een statuswijziging optreedt, verzendt de verzendbron het gebeurtenishandlerblok naar de doelwachtrij.

Nieuw gemaakte bronnen worden gemaakt in een onderbroken status. Nadat de bron is geconfigureerd door het instellen van een gebeurtenishandler, annuleringshandler, registratiehandler, context, enzovoort, moet de bron worden geactiveerd door een aanroep naar Resume() voordat gebeurtenissen worden afgeleverd.

Bron gebeurtenis-handlers

Als u gebeurtenissen van de verzendbron wilt ontvangen, moet een gebeurtenis-handler worden opgegeven via SetEventHandler(Action). De gebeurtenis-handler wordt verzonden naar de doelwachtrij van de bron wanneer de status van het onderliggende systeem wijzigingen verwerkt of wanneer er een gebeurtenis plaatsvindt. Als een bron wordt hervat zonder set gebeurtenissen-handlerblokken, worden gebeurtenissen stil genegeerd. Als de gebeurtenis-handler wordt gewijzigd terwijl de bron is onderbroken, of vanuit een blok dat wordt uitgevoerd in een seriële wachtrij die de doelwachtrij van de bron is, wordt het nieuwe blok gebruikt door de volgende gebeurtenis-handleraanroep.

Verzendbronnen kunnen onafhankelijk van hun doelwachtrijen worden onderbroken of hervat met behulp Suspend() van en Resume() op de verzendbron. De gegevens die gebeurtenissen beschrijven die optreden terwijl een bron wordt onderbroken, worden samengevoegd en geleverd zodra de bron is hervat.

De handler hoeft niet opnieuw in te dienen als veilig, omdat deze pas opnieuw in de doelwachtrij wordt ingediend nadat een eerdere aanroep voor die verzendbron is voltooid.

Als u het instellen van de gebeurtenis-handler ongedaan wilt maken, roept u SetEventHandler(Action) pass null als argument aan.

Registration

Wanneer Resume() een onderbroken of nieuw gemaakte bron wordt aangeroepen, kan er een korte vertraging optreden voordat de bron gereed is voor het ontvangen van gebeurtenissen van de onderliggende systeemhandler. Tijdens deze vertraging wordt de gebeurtenis-handler niet aangeroepen en worden gebeurtenissen gemist.

Zodra de verzendbron is geregistreerd bij het onderliggende systeem en klaar is om alle gebeurtenissen te verwerken, wordt de optionele registratiehandler naar de doelwachtrij verzonden. Deze registratiehandler kan worden opgegeven via SetRegistrationHandler(Action).

De gebeurtenis-handler wordt pas aangeroepen als de registratie-handler is voltooid. Als de bron wordt geannuleerd (zie hieronder) voordat deze wordt geregistreerd, wordt de registratiehandler niet aangeroepen.

Annulering

De Cancel() functie annuleert de verzendbron asynchroon, waardoor verdere aanroep van het gebeurtenishandlerblok niet meer wordt aangeroepen. Annulering onderbreekt momenteel geen handlerblok (niet-preemptive). Als een bron wordt geannuleerd voordat deze voor het eerst wordt hervat, wordt de gebeurtenis-handler nooit aangeroepen. (In dit geval moet de bron worden hervat voordat deze kan worden vrijgegeven.)

De IsCanceled functie kan worden gebruikt om te bepalen of de opgegeven bron is geannuleerd.

Wanneer een verzendbron wordt geannuleerd, wordt de optionele annuleringshandler verzonden naar de doelwachtrij. De annuleringshandler kan worden opgegeven via SetCancelHandler(Action). Deze annuleringshandler wordt slechts één keer aangeroepen en alleen als direct gevolg van het aanroepen Cancel().

Belangrijk: een annuleringshandler is vereist voor bestandsdescriptor- en machpoortbronnen om de descriptor veilig te sluiten of de poort te vernietigen. Het sluiten van de descriptor of poort voordat de annuleringshandler wordt uitgevoerd, kan leiden tot een racevoorwaarde: als een nieuwe descriptor wordt toegewezen met dezelfde waarde als de onlangs gesloten descriptor terwijl de gebeurtenis-handler van de bron nog steeds wordt uitgevoerd, kan de gebeurtenishandler gegevens lezen/schrijven naar de verkeerde descriptor.

Eigenschappen

Naam Description
Handle

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DisposableObject)
IsCanceled

Bepaal of de opgegeven bron is geannuleerd.

Owns

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DisposableObject)

Methoden

Naam Description
Activate()

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DispatchObject)
Cancel()

Asynchroon annuleert de verzendbron.

ClearHandle()

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DisposableObject)
Dispose()

Alle resources die door dit object worden gebruikt, worden vrijgegeven.

(Overgenomen van DisposableObject)
Dispose(Boolean)

Releases van de resources die worden gebruikt door het DispatchSource-object.

Equals(Object)

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DisposableObject)
GetCheckedHandle()

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DisposableObject)
GetHashCode()

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DisposableObject)
InitializeHandle(NativeHandle)

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DisposableObject)
Release()

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DispatchObject)
Resume()

De verzendbron wordt hervat.

Retain()

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DispatchObject)
SetCancelHandler(Action)

Biedt een annuleringshandler

SetEventHandler(Action)

Er is een handler opgegeven die moet worden uitgevoerd wanneer gebeurtenissen worden ontvangen op de verzendbron.

SetRegistrationHandler(Action)

Biedt een registratie-handler

SetTargetQueue(DispatchQueue)

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

(Overgenomen van DispatchObject)
Suspend()

Hiermee wordt de verzendbron onderbroken.

Extensiemethoden

Naam Description
GetHandle(INativeObject)

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

GetNonNullHandle(INativeObject, String)

DispatchSource is een basisklasse die wordt gebruikt om gebeurtenisbronnen opnieuw in te stellen die verschillende systeemobjecten en -gebeurtenissen kunnen bewaken, waaronder bestandsdescriptors, mach-poorten, processen, virtuele bestandssysteemknooppunten, signaallevering en timers.

Van toepassing op