Zadania lekkie
Niniejszy dokument opisuje rolę lekkie zadania w czasie wykonywania współbieżności.A lekki zadania jest zadaniem, które można zaplanować bezpośrednio z concurrency::Scheduler lub concurrency::ScheduleGroup obiektu.Lekkie zadania podobne do funkcji, która zapewnić API systemu Windows CreateThread funkcji.W związku z tym lekkie zadań są przydatne dostosowanie istniejącego kodu, aby użyć funkcji planowania Runtime współbieżności.Runtime współbieżności, sama używa lekkie zadań zaplanować asynchronicznego agenci i wysyłać wiadomości między blokami asynchroniczny komunikat.
Porada |
---|
Runtime współbieżności zawiera harmonogram domyślny, a więc nie trzeba utworzyć w aplikacji.Ponieważ Harmonogram zadań umożliwia dostosowywanie wydajności aplikacji, firma Microsoft zaleca uruchamiania z Biblioteka równoległych wzorców (PLL) lub Biblioteka agentów asynchronicznych , jeśli jesteś nowym Runtime współbieżności. |
Lekkie zadań przewozu mniejszego nakładu pracy niż asynchronicznego agentów i grup zadań.Na przykład środowiska wykonawczego nie informują po zakończeniu zadania lekkie.Ponadto środowiska wykonawczego nie catch lub obsługi wyjątków, które są generowane z lekkiego zadania.Aby uzyskać więcej informacji na temat obsługi wyjątków i lekkie zadań zobacz Obsługa wyjątków we współbieżności środowiska wykonawczego.
Dla większości zadań zaleca się używać bardziej niezawodne funkcje, takie jak grupy zadań i algorytmy równoległe, ponieważ umożliwiają one łatwiej podział zadań złożonych na bardziej podstawowe.Aby uzyskać więcej informacji dotyczących grup zadań, zobacz Równoległość zadania (współbieżność środowiska wykonawczego).Aby uzyskać więcej informacji na temat algorytmów równoległych, zobacz Algorytmy równoległe.
Aby utworzyć zadanie, lekkie, wywołanie concurrency::ScheduleGroup::ScheduleTask, concurrency::CurrentScheduler::ScheduleTask, lub concurrency::Scheduler::ScheduleTask metody.Oczekiwania na zakończenie zadania lekkie, poczekaj harmonogram nadrzędnego zamykanie lub użyć mechanizm synchronizacji, takich jak concurrency::event obiektu.
Przykład
Na przykład, który demonstruje, jak dostosować istniejący kod używany lekkie zadań, zobacz Wskazówki: adaptacja istniejącego kodu do potrzeb zadań lekkich.
Zobacz też
Zadania
Wskazówki: adaptacja istniejącego kodu do potrzeb zadań lekkich