Udostępnij za pośrednictwem


task_group::run — Metoda

Planuje zadanie na task_group obiektu.Jeśli task_handle obiektu jest przekazywana jako parametr do run, obiekt wywołujący jest odpowiedzialna za zarządzanie istnienia task_handle obiektu.Wersja metody, która przyjmuje odwołanie do obiektu funkcji jako parametr polega alokację sterty wewnątrz runtime, które mogą być wykonywać również mniej niż przy użyciu wersji, która przyjmuje odwołanie do task_handle obiektu.Wersja, która przyjmuje parametr _Placement powoduje być obciążona w kierunku wykonywania w lokalizacji określonej przez parametr tego zadania.

template<
   typename _Function
>
void run(
   const _Function& _Func
);

template<
   typename _Function
>
void run(
   const _Function& _Func,
   location& _Placement
);

template<
   typename _Function
>
void run(
   task_handle<_Function>& _Task_handle
);

template<
   typename _Function
>
void run(
   task_handle<_Function>& _Task_handle,
   location& _Placement
);

Parametry

  • _Function
    Typ obiektu funkcji, który zostanie wywołany organ uchwyt zadania wykonać.

  • _Func
    Funkcja, która będzie wywoływana wywoływanie treści zadania.Może to być wyrażenie lambda lub inny obiekt, który obsługuje wersję operator wywołania funkcji z podpisem void operator()().

  • _Placement
    Odwołanie do lokalizacji, w których zadania są reprezentowane przez _Func powinno być wykonane przez parametr.

  • _Task_handle
    Uchwyt do pracy z harmonogramem.Należy zauważyć, że obiekt wywołujący ponosi odpowiedzialność za okres istnienia tego obiektu.Środowisko wykonawcze będzie nadal oczekiwać, iż live aż do wait lub run_and_wait w tej sprawie została wywołana metoda task_group obiektu.

Uwagi

Środowisko wykonawcze planuje przewidziano funkcji pracy do uruchamiania w późniejszym czasie może być po powrocie z funkcji wywołującej.Metoda ta wykorzystuje task_handle obiektu do przechowywania kopii przewidziano funkcji pracy.Dlatego wszelkie zmiany Państwa, które występują w obiekcie funkcji, który jest przekazywany do tej metody nie pojawi się w Twojej kopii obiektu tej funkcji.Ponadto upewnij się, okres istnienia żadnych obiektów, które przechodzą przez wskaźnik lub odwołanie do funkcji pracy pozostają ważne, dopóki funkcja pracy.

Jeśli task_group destructs w wyniku stosu niekontrolowanej z wyjątek, nie trzeba zagwarantować, że wywołanie dokonano do albo wait lub run_and_wait metody.W tym przypadku destruktor będzie odpowiednio anulować i poczekaj zadania reprezentowane przez _Task_handle parametr, aby zakończyć.

Metoda invalid_multiple_scheduling wyjątku, jeśli zadania obsługi podana przez _Task_handle parametr została zaplanowana na obiekt grupy zadań za pomocą run metody i nie było żadnych interwencyjnym wywołanie albo wait lub run_and_wait metody dla tej grupy zadań.

Wymagania

Nagłówek: ppl.h

Obszar nazw: współbieżności

Zobacz też

Informacje

task_group — Klasa

task_group::wait — Metoda

task_group::run_and_wait — Metoda

location — Klasa

Koncepcje

Równoległość zadania (współbieżność środowiska wykonawczego)