38 lines
778 B
Mathematica
38 lines
778 B
Mathematica
|
#import <Cocoa/Cocoa.h>
|
||
|
#import "NSObject+SPInvocationGrabbing.h"
|
||
|
|
||
|
@interface Foo : NSObject {
|
||
|
int a;
|
||
|
}
|
||
|
-(void)startIt;
|
||
|
-(void)theBackgroundStuff;
|
||
|
-(void)theForegroundStuff;
|
||
|
@end
|
||
|
|
||
|
@implementation Foo
|
||
|
-(void)startIt;
|
||
|
{
|
||
|
NSLog(@"Starting out on the main thread...");
|
||
|
a = 3;
|
||
|
[[self inBackground] theBackgroundStuff];
|
||
|
}
|
||
|
-(void)theBackgroundStuff;
|
||
|
{
|
||
|
NSLog(@"Woah, this is a background thread!");
|
||
|
a += 6;
|
||
|
[[self onMainAsync:YES] theForegroundStuff];
|
||
|
}
|
||
|
-(void)theForegroundStuff;
|
||
|
{
|
||
|
NSLog(@"Hey presto: %d", a);
|
||
|
}
|
||
|
@end
|
||
|
|
||
|
int main() {
|
||
|
NSAutoreleasePool *pool = [NSAutoreleasePool new];
|
||
|
Foo *foo = [Foo new];
|
||
|
[foo startIt];
|
||
|
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
|
||
|
[pool release];
|
||
|
return 0;
|
||
|
}
|