Udostępnij za pośrednictwem


Metoda IThreadProxy::SwitchTo

Wykonuje przełączanie kontekstu współpracy z obecnie wykonywanym kontekście do innej.

virtual void SwitchTo(
   _Inout_ IExecutionContext * pContext,
   SwitchingProxyState switchState
) =0;

Parametry

  • pContext
    Kontekst wykonywania, aby wspólnie do.

  • switchState
    Wskazuje stan serwera proxy wątek, który jest wykonywany przełącznika.Parametr jest typu SwitchingProxyState.

Uwagi

Metoda ta pozwala przełączyć się z kontekstu wykonywania jednego do drugiego, z IExecutionContext::Dispatch metody pierwszego kontekst wykonywania.Metoda Kojarzy kontekst wykonywania pContext z wątku serwera proxy, jeśli jeszcze nie jest skojarzony z jednym.Własność proxy bieżącego wątku jest określana wartość dla switchState argument.

Należy użyć wartości Idle Jeśli chcesz powrócić proxy aktualnie wykonywany wątek Menedżera zasobów.Wywołanie SwitchTo z parametrem switchState ustawiona na Idle spowoduje, że kontekst wykonywania pContext rozpoczęcie wykonywania podstawowych zasobu wykonanie.Własność tego wątku serwera proxy jest przenoszona do Menedżera zasobów, i są oczekiwane z kontekstu wykonywania Dispatch metoda zaraz po SwitchTo zwraca do przesyłania danych.Kontekst wykonywania, że wysyłka została proxy wątek jest oddzielone od serwera proxy wątku, i do ponownego wykorzystania lub zniszczyć uzna jest harmonogramu.

Należy użyć wartości Blocking kiedy mają proxy ten wątek na stan zablokowane.Wywołanie SwitchTo z parametrem switchState ustawiona na Blocking spowoduje, że kontekst wykonywania pContext na rozpoczęcie wykonywania i zablokować proxy bieżącego wątku, dopóki zostanie wznowiony.Harmonogram zachowuje własność proxy wątku, gdy serwer proxy wątek jest w Blocking Państwo.Można wznowić proxy wątku blokującym, wywołując funkcję SwitchTo Aby przełączyć kontekst wykonywania proxy tego wątku.Można również wznowić proxy wątek przy użyciu jego skojarzony kontekst aktywacji głównego wirtualnego procesora.Aby uzyskać więcej informacji, jak to zrobić, zobacz IVirtualProcessorRoot::Activate.

Należy użyć wartości Nesting kiedy chcesz tymczasowo odłączyć ten serwer proxy wątku z procesora wirtualnego katalogu głównego jest uruchomiony na i harmonogramu go uzależnionym pracy.Wywołanie SwitchTo z parametrem switchState ustawiona na Nesting spowoduje, że kontekst wykonywania pContext rozpocząć wykonywanie i bieżący wątek proxy również kontynuuje wykonywanie bez potrzeby głównego wirtualnego procesora.Proxy wątek jest uważana za opuściły harmonogramu, dopóki nie wywołuje IThreadProxy::SwitchOut metody w późniejszym momencie.IThreadProxy::SwitchOut Metody, które mogłyby blokować proxy wątku aż głównego wirtualnego procesora jest dostępne je ponownie zaplanować.

SwitchTomusi być wywołany w IThreadProxy interfejsu, który reprezentuje aktualnie wykonywany wątek lub wyniki są niezdefiniowane.Funkcja generuje invalid_argument Jeśli parametr pContext jest ustawiona na NULL.

Wymagania

Nagłówek: concrtrm.h

Obszar nazw: współbieżności

Zobacz też

Informacje

Struktura IThreadProxy

Wyliczanie SwitchingProxyState