NSOperation 簡單使用

2021-07-03 10:30:23 字數 1673 閱讀 2538

nsoperation 是一種多執行緒技術 ,起基本原理是把相應地操作放在佇列裡邊 ,然後有佇列分發處理。

佇列的建立

/**

* 初始化乙個佇列

* * @return 初始化好的對列

*/- (nsoperationqueue *)myqueue

return _myqueue;

}

向佇列中新增操作

#pragma mark - 同時併發執行緒數量

/** * 在佇列中新增操作

*/- (void)opdemo1

]; }

}

佇列可以暫停和繼續

- (ibaction)pause 

// 掛起-》暫停,暫停的是佇列,讓佇列暫時不再派發任務

nslog(@"暫停");

[self.myqueue setsuspended:yes];

}- (ibaction)resumue

nslog(@"繼續");

[self.myqueue setsuspended:no];

}

佇列裡邊的操作預設是非同步的

但是可以新增依賴關係 ,從而實現順序執行的需求

/**

* nsinvocationoperation 測試樣例

*/- (void)opdemo4

- (void)demo4test1

- (void)demo4test2

- (void)demo4test3

- (void)demo4test4

#pragma mark - 操作的依賴->操作的執行順序

/** * nsblockoperation 測試陽曆

*/- (void)opdemo3

]; nsblockoperation *op2 = [nsblockoperation blockoperationwithblock:^];

nsblockoperation *op3 = [nsblockoperation blockoperationwithblock:^];

nsblockoperation *op4 = [nsblockoperation blockoperationwithblock:^];

// dependency依賴

[op2 adddependency:op1];

[op3 adddependency:op2];

[op4 adddependency:op3];

// 一定注意不要出現迴圈依賴,

// [op1 adddependency:op4];

// waituntilfinished等待所有操作完成再繼續

// [self performselectoronmainthread:<#(sel)#> withobject:<#(id)#> waituntildone:<#(bool)#>]

[self.myqueue addoperations:@[op1, op2, op3] waituntilfinished:no];

[[nsoperationqueue mainqueue] addoperation:op4];

}

NSOperation的簡單使用

1.預設情況下,nsoperation並不具備封裝操作的能力,必須使用它的子類,使用nsoperation子類的方式有3種 1 nsinvocationoperation 2 nsblockoperation 3 自定義子類繼承nsoperation,實現內部相應的方法 這講先介紹如何用nsoper...

NSOperation的基本使用

viewcontroller.m nsoperation的基本使用 nsoperation的作用 配合使用nsopertaion和nsoperationqueue也能實現多執行緒程式設計 nsopertaion和nsoperationqueue實現多執行緒的具體步驟 先將需要執行的操作封裝到乙個ns...

NSOperation 操作 簡介

nsoperation 使用1.簡介 重點 理解操作 nsoperation 和操作佇列 nsoperationqueue nsoperation 使用2.nsoperation 重點 1.nsblockoperation,nsinvocationoperation 的簡單使用.新增更多操作 op2...