2017-03-14 14:40:02 yuqingzhude 阅读数 1055
  • 基于qt和ffmpeg视频播放器开发实战

    ffmpeg是世界上应用广的开源视频处理框架,在各个平台(windows,linux,嵌入式、Android、IOS)被广泛应用,可以说是做视频相关项目技能 qt是目前跨平台项目界面开发的第一选择,本课程基于这两种框架在加上VC++,给大家讲解延时如何开发出一个视频播放器,各个模块如何结合,如何考虑性能问题,如何设计封装类,如何处理各种异常情况。

    32541 人正在学习 去看看 夏曹俊

转载自:http://blog.sina.com.cn/s/blog_8280f5ec0101k03c.html

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。

- (void)delayMethod { NSLog(@"execute"); }

1.performSelector方法

[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
暂时未找到取消执行的方法。

2.定时器:NSTimer

[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
可以通过NSTimer类的- (void)invalidate;取消执行。

3. sleep方式

[NSThread sleepForTimeInterval:1.0f]; [self delayMethod];

此方式在主线程和子线程中均可执行。
是一种阻塞的执行方式,建方放到子线程中,以免卡住界面
没有找到取消执行的方法。

4.GCD方式

double delayInSeconds = 1.0; 
 __block ViewController* bself = self; 
 dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
 [bself delayMethod]; });

此方式在可以在参数中选择执行的线程。
是一种非阻塞的执行方式,
没有找到取消执行的方法。


2015-07-02 10:27:48 emmaalways 阅读数 437
  • 基于qt和ffmpeg视频播放器开发实战

    ffmpeg是世界上应用广的开源视频处理框架,在各个平台(windows,linux,嵌入式、Android、IOS)被广泛应用,可以说是做视频相关项目技能 qt是目前跨平台项目界面开发的第一选择,本课程基于这两种框架在加上VC++,给大家讲解延时如何开发出一个视频播放器,各个模块如何结合,如何考虑性能问题,如何设计封装类,如何处理各种异常情况。

    32541 人正在学习 去看看 夏曹俊

转载自:http://blog.sina.com.cn/s/blog_8280f5ec0101k03c.html

本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法。

- (void)delayMethod { NSLog(@"execute"); }

1.performSelector方法

[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,

暂时未找到取消执行的方法。


2.定时器:NSTimer

[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];

此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,

可以通过NSTimer类的- (void)invalidate;取消执行。


3. sleep方式

[NSThread sleepForTimeInterval:1.0f]; [self delayMethod];
此方式在主线程和子线程中均可执行。
是一种阻塞的执行方式,建方放到子线程中,以免卡住界面

没有找到取消执行的方法。


4.GCD方式

double delayInSeconds = 1.0; 
__block ViewController* bself = self; 
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
 [bself delayMethod]; });

此方式在可以在参数中选择执行的线程。
是一种非阻塞的执行方式,
没有找到取消执行的方法。

2016-04-29 14:07:44 Ashimar_a 阅读数 524
  • 基于qt和ffmpeg视频播放器开发实战

    ffmpeg是世界上应用广的开源视频处理框架,在各个平台(windows,linux,嵌入式、Android、IOS)被广泛应用,可以说是做视频相关项目技能 qt是目前跨平台项目界面开发的第一选择,本课程基于这两种框架在加上VC++,给大家讲解延时如何开发出一个视频播放器,各个模块如何结合,如何考虑性能问题,如何设计封装类,如何处理各种异常情况。

    32541 人正在学习 去看看 夏曹俊

iOS延时执行的四种方法

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSLog(@"延时方法的使用->转载:http://blog.csdn.net/chenyong05314/article/details/24695897 ");
    // 延时方法
    /* 1. performSeletor 方法
        此方法必须在主线程中执行,否则无效。
        是一种非阻塞的执行方法
        暂时未找到取消执行的方法
     */
    [self performSelector:@selector(delayMethodWithPerformSeletor) withObject:nil afterDelay:2.0f];


}
- (void)delayMethodWithPerformSeletor{
    NSLog(@"延时方法一:performSeletor");

    /*
     2.定时器:NSTimer
     此方法要求必须在主线程中执行,否则无效
     是一种非阻塞的执行方式,
     可以通过NSTimer类的 - (void)invalidate; 取消执行
     */
    [NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(delayMethodWithNSTimer) userInfo:nil repeats:NO];
}

- (void)delayMethodWithNSTimer{
    NSLog(@"延时方法二:定时器:NSTimer");

    /*
     3.sleep方法
     此方法在主线程和子线程中均可执行
     是一种阻塞的执行方式,建议放在子线程中,以免卡住界面
     没有找到取消执行方法
     */
    [NSThread sleepForTimeInterval:3.0f];
    [self delayMethodWithSleep];
}

- (void)delayMethodWithSleep{
    NSLog(@"延时方法三:sleep方式");

    /*
     4.GCD方式
     此方式在可以在参数中选择执行的线程
     是一种非阻塞的执行方式,
     没有找到取消执行的方式。
     */
    double delayInSeconds = 1.0;

    __block ViewController *bself = self;

    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds *NSEC_PER_SEC));

    dispatch_after(popTime, dispatch_get_main_queue(), ^{
        [bself delayMethodWithGCD];
    });

}

- (void)delayMethodWithGCD{
    NSLog(@"延时方法四:GCD");
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
2015-06-08 12:20:47 darongzi1314 阅读数 824
  • 基于qt和ffmpeg视频播放器开发实战

    ffmpeg是世界上应用广的开源视频处理框架,在各个平台(windows,linux,嵌入式、Android、IOS)被广泛应用,可以说是做视频相关项目技能 qt是目前跨平台项目界面开发的第一选择,本课程基于这两种框架在加上VC++,给大家讲解延时如何开发出一个视频播放器,各个模块如何结合,如何考虑性能问题,如何设计封装类,如何处理各种异常情况。

    32541 人正在学习 去看看 夏曹俊
- (void)initBlock{
    //延时的方法
    //1:GCD延时 此方式在可以在参数中选择执行的线程。是一种非阻塞的执行方式,没有找到取消执行的方法。
    double delay1=2.0;//设置延时时间
    dispatch_time_t popTime=dispatch_time(DISPATCH_TIME_NOW, delay1 * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^{
        UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"" message:@"GCD延时" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil];
        [alert show];
    });
    //2:NSTimer延时,此方式要求必须在主线程中执行,否则无效。是一种非阻塞的执行方式,可以通过NSTimer类的- (void)invalidate;取消执行。
    [NSTimer scheduledTimerWithTimeInterval:8.0f target:self selector:@selector(delayMethod2) userInfo:nil repeats:NO];
    //3:PerformSelector延时
    [self performSelector:@selector(delayMethod) withObject:nil afterDelay:5.0f];
    //4:NSThread 延时
    [NSThread sleepForTimeInterval:11.0f];
    [self delayMethod3];
}
- (void)delayMethod{
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"" message:@"PerformSelector延时" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil];
    [alert show];
}
- (void)delayMethod2{
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"" message:@"NSTimer延时" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil];
    [alert show];
}
- (void)delayMethod3{
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"" message:@"NSThread延时" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil];
    [alert show];
}
2015-07-22 11:03:24 u013457022 阅读数 422
  • 基于qt和ffmpeg视频播放器开发实战

    ffmpeg是世界上应用广的开源视频处理框架,在各个平台(windows,linux,嵌入式、Android、IOS)被广泛应用,可以说是做视频相关项目技能 qt是目前跨平台项目界面开发的第一选择,本课程基于这两种框架在加上VC++,给大家讲解延时如何开发出一个视频播放器,各个模块如何结合,如何考虑性能问题,如何设计封装类,如何处理各种异常情况。

    32541 人正在学习 去看看 夏曹俊
/* 本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的方法. */
- (void)delayMethod
{
    NSLog(@"execute");
}

/**
 *  【1】.performSelector方法
 */
[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];
// 此方式要求必须在主线程中执行,否则无效。
// 是一种非阻塞的执行方式,
// 暂时未找到取消执行的方法。


/**
 *  【2】.定时器:NSTimer
 */
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];
// 此方式要求必须在主线程中执行,否则无效。
// 是一种非阻塞的执行方式,
// 可以通过NSTimer类的- (void)invalidate;取消执行。

/**
 *  【3】.sleep方式
 */
[NSThread sleepForTimeInterval:1.0f];
[self delayMethod];
// 此方式在主线程和子线程中均可执行。
// 是一种阻塞的执行方式,建方放到子线程中,以免卡住界面
// 没有找到取消执行的方法。

/**
 *  【4】.GCD方式
 */
double delayInSeconds = 1.0;
__block ViewController* bself = self;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    [bself delayMethod]; });
// 此方式在可以在参数中选择执行的线程。
// 是一种非阻塞的执行方式,
// 没有找到取消执行的方法。

iOS 延时的方法

阅读数 278

iOS 延时执行(OC)

阅读数 1432

iOS启动画面延时

阅读数 396

iOS常见的延时执行

阅读数 725

iOS常见的延时执行

博文 来自: songchunmin_
没有更多推荐了,返回首页