Thursday, October 20, 2011

Porting OpenCV 2.3.1 to iPhone 3GS/4/4S - 在iOS中使用thread來實作耗時的程序

在使用OpenCV函式庫中必然有大量運算的需求,因此就需要用thread來分離大量運算的部份才不至於使UI卡住,下面就來實際操作如何在iOS中使用thread來實作耗時的程序:
1. 在xxxViewController.h的@interface xxxViewController中宣告
            NSThread * stitchThread;


2. 在xxxViewController.m中實作stitchThreadProc如下(將有大量需求的運算放在其中):

       - (void)stitchThreadProc:(id)info {
    
            NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    
            //大量運算放於此
            //...

            [pool drain];
    
       }

3. 使用如下的方式呼叫並啟動thread:

        stitchThread = [[NSThread alloc] initWithTarget:self selector:@selector(stitchThreadProc:) object:nil];
        
        [stitchThread start];


完成了,是不是很簡單呢!

No comments:

Post a Comment