多线程Operation
来源:互联网 发布:防身甩棍淘宝网 编辑:程序博客网 时间:2024/05/18 22:50
文件1:ViewController.m
#import "ViewController.h"
#import "MyOperation.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
// [super viewDidLoad];
// int age = 0;
// [self method:&age];
//
// NSLog(@"%d",age);
NSInvocationOperation *invacationOperation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(method:) object:@"+++"];
[invacationOperation start];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[self methodSignatureForSelector:@selector(method1:)]];
[invocation setTarget:self];
[invocation setSelector:@selector(method1:)];
NSString *str = @"xxx";
[invocation setArgument:&str atIndex:2];
NSInvocationOperation *invocationOp = [[NSInvocationOperation alloc] initWithInvocation:invocation];
// [invocationOp start];
NSBlockOperation *blockOperation = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"blockOperation");
NSLog(@"%@",[NSThread isMainThread]?@"main":@"sub");
}];
[blockOperation addExecutionBlock:^{
NSLog(@"executionBlock");
NSLog(@"%@",[NSThread isMainThread]?@"main":@"sub");
}];
[blockOperation addExecutionBlock:^{
NSLog(@"executionBlock2");
NSLog(@"%@",[NSThread isMainThread]?@"main":@"sub");
}];
[blockOperation addExecutionBlock:^{
NSLog(@"executionBlock3");
NSLog(@"%@",[NSThread isMainThread]?@"main":@"sub");
}];
[blockOperation start];
// NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init];
NSOperationQueue *operationQueue = [NSOperationQueue mainQueue];
//可以用来操作UI
[operationQueue addOperation:invocationOp];
MyOperation *operation = [[MyOperation alloc] init];
[operation start];
// [operationQueue addOperation:blockOperation];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)method:(NSString *)value
{
NSLog(@"%@",value);
NSLog(@"%@", [NSThread isMainThread]?@"Main":@"Sub");
NSLog(@"%s", __PRETTY_FUNCTION__);
// NSLog(@"%@: %s", self, _cmd);
}
- (void)method1:(id)object
{
NSLog(@"%s",__PRETTY_FUNCTION__);
NSLog(@"%@",[NSThread isMainThread]?@"main":@"sub");
NSLog(@"%@",object);
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
文件2:MyOperation.h
#import <Foundation/Foundation.h>
@interface MyOperation : NSOperation
@end
文件3:MyOperation.h
#import "MyOperation.h"
@implementation MyOperation
- (void)main
{
NSLog(@"---");
}
@end
- 多线程Operation
- 多线程知识点 自定义Operation
- iOS多线程1 Operation
- Operation System: 多线程笔记
- iOS 多线程 (GCD,Operation,Runloop)
- iOS 多线程 (GCD,Operation,Runloop)
- iOS 多线程 (GCD,Operation,Runloop)
- iOS多线程编程篇: Operation 对象 与 Operation Queue
- Operation queues中多线程的支持
- iOS 多线程的使用(Operation)
- IOS 多线程初探(二) - Operation Object
- iOS多线程编程之Operation Queues
- 多线程(GCD、Operation、NSThread的区别)
- operation
- Operation System - Peterson's Solution算法 解决多线程冲突
- Operation System: Multi-thread 多线程 v.s. 多进程
- Swift多线程之Operation:按优先级加载图片
- linux多线程创建失败,errno=1:Operation not permitted
- EventBus使用详解(一)——初步使用EventBus
- Ubuntu 12.04 中安装和配置 Java JDK
- LeetCode 125 Implement strStr()
- bzoj 3669: [Noi2014]魔法森林
- MultiByteToWideChar(char *转Unicode)
- 多线程Operation
- 【多线程】(二)Interlocked系列函数
- java面试题-HashMap原理
- 逆波兰表达式
- LeetCode 126 Remove Element
- 从命令行启动3ds max(带命令行选项)并加载执行MAXScript
- 【10月末总结】
- c语言中可变参数
- Unity3D-游戏退出