偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iPhone多線程編程初體驗

移動開發(fā) iOS
多線程編程是防止主線程堵塞,增加運行效率等等的最佳方法。而原始的多線程方法存在很多的毛病,包括線程鎖死等。

找了很長時間IPhone下多線程的編程的內容, 用到的類是UIKit的中NSThread.。

在google過程中,發(fā)現很多文都驚喜地標題著類似< 多線程的OS4來了>, 這些想正向引導一下, 0S4的亮點在于多任務,一個任務為一個進程,也叫多進程, 而多線程在早期的IPHONEOS上都是有的.

IPHONE OS中任務的概念是一個應用, 在一個時間你只能做一件事情, 即不能同時玩游戲,同時上QQ. 而多任務的時候是可以這么做的.

流程大概如下:

1. 創(chuàng)建一個線程

  1. [NSThread detachNewThreadSelect:@selector(BeginThread)     
  2. toTarget:selft     
  3. withObject:nil];    

2.線程里做兩件,一件是后臺處理耗時間的活(dosomethinglongtime),另一件是更新UI(UpdateUI)

  1. view plaincopy to clipboardprint?  
  2. (void) BeginThread{     
  3. [self performSelectorInBackgroud:@selector(dosomethinglongtime)     
  4. withObject:nil];     
  5. [self perfomSelectorOnMainThread:@selector(UpdateUI)     
  6.  withObject:nil     
  7. watUntilDone:NO];     
  8. }    

3. 那UpdateUI的數據怎么來呢

  1. view plaincopy to clipboardprint?  
  2. -(void)dosomethinglongtime{     
  3. // 修改共享變量 varProgress, varText等等     
  4. }     
  5. {void)UpdateUI{     
  6. // 獲得共享變量 varProgress, varText等等, 顯示在界面上     

這樣就完成了一個大概的流程,但是UpdateUI里不能用while(1),不然主線程會堵在UpdateUI的函數里,怎么辦呢? Google了一個方法, UpdateUI的方法做了一下修改

這樣的意思, 如果沒線程沒結束,過0.2秒再回到這個函數更新界面, 如此循環(huán), 直到結束.

  1. view plaincopy to clipboardprint?  
  2. (void)UpdateUI{     
  3. // 獲得共享變量 varProgress, varText等等, 顯示在界面上     
  4. if(!finished)     
  5. [NSTimer scheduledTimerWithTimeInterval:0.2 target:self     
  6. selector:@selector(UpdateUI)  userInfo:nil repeats:NO];     
  7. }    

以上IPhone多線程編程的一種方法, 當然還有人提議用NSOperation和NSOperationQueue,但我試了一把,沒把效果試出來, 等有結果再回來更新. 嘿嘿.

【編輯推薦】

解析iphone多線程

多線程編程您不知道的5件事

Java多線程程序設計詳細解析

Android 多任務多線程斷點下載

iPhone應用開發(fā)必知必會的三大基礎

責任編輯:zhaolei 來源: 互聯網
相關推薦

2021-08-12 14:33:20

Python多線程編程

2011-08-02 10:26:59

iOS 多線程 線程

2011-07-28 14:19:12

iPhone 網絡編程 聊天程序

2011-06-24 11:03:31

Qt 多線程 線程

2011-08-09 14:24:18

iPhone多線程線程

2011-06-20 13:23:03

Qt Quick QML

2011-06-02 17:27:49

iphone 多線程

2011-07-21 11:12:58

iPhone 線程 多線程

2011-07-08 16:43:46

iPhone Cocoa 多線程

2013-07-16 10:12:14

iOS多線程多線程概念多線程入門

2023-10-06 23:06:01

多線程Python

2009-03-09 15:12:39

XenServer安裝

2009-08-01 09:06:35

UbuntuOneLinux開源操作系統

2023-06-13 13:39:00

多線程異步編程

2009-03-12 10:52:43

Java線程多線程

2010-11-22 10:31:17

Sencha touc

2011-05-30 15:12:10

App Invento 初體驗

2011-08-12 10:09:23

iPhone開發(fā)多線程

2023-07-15 08:01:38

2023-06-07 13:49:00

多線程編程C#
點贊
收藏

51CTO技術棧公眾號