Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2025 mgr Jerzy Wałaszek
|
SDL_DetachThread
SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby pozwolić wątkowi posprzątać po sobie bez ingerencji.
void SDL_DetachThread(SDL_Thread* thread) |
thread | wskaźnik SDL_Thread, który został zwrócony z wywołania SDL_CreateThread() uruchamiającego ten wątek. |
extern int TestThread(void *ptr); SDL_Thread *thread = SDL_CreateThread(TestThread, "TestThread", (void *)NULL); SDL_DetachThread(thread); /* będzie pracował samodzielnie aż do zakończenia. */ |
Nie ma sposobu odzyskania kodu zwracanego przez kończący się wątek, jeśli został on odłączony. Jeśli będzie ci on potrzebny, to nie odłączaj wątku, lecz zamiast tego użyj funkcji SDL_WaitThread().
Gdy wątek zostanie odłączony, powinieneś założyć zwykle, że SDL_Thread nie jest bezpieczne przy ponownym odwołaniu, ponieważ staje się nieważne natychmiast, gdy odłączony wątek zakończy swoje działanie, zamiast pozostawania aż inny kod wywoła SDL_WaitThread(), aby ostatecznie posprzątać po wątku. Z tego powodu nie odłączaj tego samego wątku więcej niż jeden raz.
Jeśli wątek się już zakończył zanim został przekazany do SDL_DetachThread(), to przestanie on oczekiwać na wywołanie SDL_WaitThread() i posprząta po sobie natychmiast. Nie jest bezpiecznie odłączać wątek, który mógłby być używany z SDL_WaitThread().
Nie powinieneś wywoływać SDL_WaitThread() na wątku, który został odłączony. Używaj albo tamtej funkcji, albo tej tutaj, lecz nie obu, w przeciwnym razie nie wiadomo, co się stanie.
Do funkcji można bezpiecznie przesłać NULL, oznacza to brak operacji.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2025 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.