iOS编程中线程的应用以及线程简单应用

在iOS编程中经常会用到线程,线程主要的工作是把影响UI界面的操作放进去,与UI操作可以异步进行。比如读写文件操作,下载操作,图像处理等费时间的操作就可以放在线程中。


先看一段程序。


-(void)createSearchThread

{

//创建线程开始,一一版把优先级不是要求特别高的线程属性设置为:DISPATCH_QUEUE_PRIORITY_DEFAULT

//创建线程开始,一一版把优先级比较高的线程属性设置为:DISPATCH_QUEUE_PRIORITY_HIGH

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),

                   ^{

                       NSString *searchWordTrim=[globeSearchText stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

                       NSString *lowerStr = [searchWordTrim lowercaseStringWithLocale:[NSLocale currentLocale]];

//这是一段创建搜索的代码,县创建收缩关键字



                       //NSLog(@"\n createSearchThread lowerStr:%@",lowerStr);

                       searchFileIndex=[self getFileIndexFromWordIndexTable:lowerStr];//从查询表中读取带有关键字的文件索引

                       //NSLog(@"\n searchFileIndex=%d,searchParaIndex=%d",searchFileIndex,searchParaIndex);

                       if(-1!=searchFileIndex)//表示索引存在

                       {

                           //show in the view

                           dispatch_async(dispatch_get_main_queue(),

                                          ^{

                                              [self stop];//停止语音播放

                                              [self initVoice];//初始化语音

                                              BOOL fileChanged=NO;

//设一个文件没有变化的初值


                                              if(fileIndex!=searchFileIndex)

                                              {//如果当前文件索引与查询出的文件索引不一致

                                                  fileChanged=YES;//文件变化标志

                                              }

                                              paraIndex=searchParaIndex;

//当前段索引要刷新

                                              

                                              fileIndex=searchFileIndex;

                                              //当前文件索引刷新


                                              if(fileChanged)

                                              {

                                                  NSString *currDocFileName=[localCfg getFileNameWithMenuIndex:menuIndex AndUrlIndex:fileIndex];//根据新的文件索引获取文件名称

                                                  

                                                  //NSLog(@"-----Detail  Doc File name is :%@\n",currDocFileName);

                                                  contentStr=[ops readFromFile:currDocFileName];//读取文件内容

                                                  //NSLog(@"\n--------contentStr-----\n%@",contentStr);

                                                  paraArray=[contentStr componentsSeparatedByString:@"::"];//分割文件内容

                                                  paraNum=(int)paraArray.count;

                                                  [stateData setFileIndex:fileIndex withRowNum:menuIndex];

                                              }

                                              [stateData setParaIndex:paraIndex withFileIndex:fileIndex];//保存文件的状态到状态标

                                              

                                        

                                              

                                              manual_operate=YES;//注明这是一次手动操作

                                              

                                              [self showDocPara:paraIndex];//显示内容

                                              searchParaIndex=-1;//恢复文件查完状态

                                              searchFileIndex=-1;

                                          });

                           

                       }

                       else

                       {

                           //globeSearchText//如果本地不存在,则搜索Web数据

                           [self webSearchAction:globeSearchText];

                       }

                   });// 查询线程结束。

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值