OVH Cloud OVH Cloud

Evènement dans un thread

4 réponses
Avatar
Patrice Goetghebeur
je cherche a recevoir un évènement via un port Mach dans un thread.
voilà un exemple tout simple qui ajoute un port à la runloop et envoi un
évènement dedans:

port = [[NSMachPort alloc] init];
[port setDelegate:self];

[[NSRunLoop currentRunLoop] addPort:port
forMode:(NSString*)kCFRunLoopCommonModes];

[port sendBeforeDate:[NSDate date] components:nil from:nil reserved:0];


ce code fonctionne nickel dans le thread principal de l'appli , la
méthode déléguée handleMachMessage du port est bien appelée.
En revanche dans un autre thread que je crée, ça ne marche pas. pourquoi
? que faut-il que j'ajoute dans mon thread ?

Merci.

4 réponses

Avatar
Patrice Goetghebeur
pourquoi NSLog(@"%@",[[NSRunLoop currentRunLoop] currentMode]); affiche
toujours (null) ?
Avatar
lucsky
Patrice Goetghebeur wrote:

pourquoi NSLog(@"%@",[[NSRunLoop currentRunLoop] currentMode]); affiche
toujours (null) ?


RTFM.

"The currentMode method returns the current input mode ONLY while the
receiver is running. Otherwise, currentMode returns nil."

--
Luc Heinrich -

Avatar
Patrice Goetghebeur
Luc Heinrich wrote:

Patrice Goetghebeur wrote:


pourquoi NSLog(@"%@",[[NSRunLoop currentRunLoop] currentMode]); affiche
toujours (null) ?



RTFM.

"The currentMode method returns the current input mode ONLY while the
receiver is running. Otherwise, currentMode returns nil."

oui et alors, elle tourne pas la runloop ? même si j'ajoute un

CFRunLoopRun() devant c'est pareil.


Avatar
lucsky
Patrice Goetghebeur wrote:

oui et alors, elle tourne pas la runloop ?


Manifestement non.

--
Luc Heinrich -