|
iPhone: párhuzamos szálak indítása, a befejezés követésével
Sűrűn fordul elő, hogy újabb szálakat kell indítani programon belül, ilyen például az adatok betöltése URL-ből. Célszerű a betöltés alatt megjeleníteni egy indikátort, ami jelzi, hogy nem a programunk fagyott meg, hanem csak töltöget. Ez viszonylag egyszerű folyamat, és a végén könnyűszerrel tudjuk pl. az UITableView objektumunkat frissíteni. Kivéve, ha szerepel benne egy UIWebView. Ugyanis ekkor problémás lesz az újratöltés, ha nem a fő programszálból tesszük, elszáll a programunk.
Mi a teendő? Úgy kell indítani az új szálat, hogy megadunk neki egy eseménykezelőt, amit a szál teljes lefutásakor elindít. Ez a függvény viszont már a fő szálunknak minősül, tehát nem lesz gondunk. A példakód:
NSThread *newThread = [[NSThread alloc] initWithTarget:self selector:[at]selector(szálFüggvény) object:nil];
[[NSNotificationCenter defaultCenter]addObserver:self selector:[at]selector(eseményKezelőFüggvény) name:NSThreadWillExitNotification object:newThread];
[newThread start];
  swGuru
|