iOS简单任务分配器TaskManager

iOS开发中任务分配是不可避免的,也有很多种解决方法。由于最近项目需求,自己写了一个简单的任务分配器,能方便地控制任务数量。

因此自己写一个任务数量控制的模块:
github链接:[email protected]:DarkKnightOne/NPDispatcher.git

使用场景:控制同时下载资源或者同时解压zip文件等的数量。

使用方法:

  1. #import "WHTaskManager.h"
  2. @property (nonatomic, strong) WHTaskManager *taskManager;
  3. 初始化,并执行同时执行的任务数量
    _taskManager = [WHTaskManager taskWithMaxTaskCount:5];
  4. 任务处理,处理完成后删除任务
__weak typeof(self)weakSelf = self;
[_taskManager newTaskReachedBlock:^(NSArray *tasks) {
  NSLog(@"-- reach new task count = %ld", tasks.count);
  for (int index = 0; index < tasks.count; index ++) {
          WHTask *t = [tasks objectAtIndex:index];
         [weakSelf.taskManager removeTask:t];
      }
}];

5.创建任务

NSMutableArray *tasks = [NSMutableArray arrayWithCapacity:10];
    for (int index = 0; index < 10; index ++) {
        WHTask *task = [[WHTask alloc] init];
        task.indentifier = index;
        [tasks addObject:task];
    }
    [_taskManager addTasks:tasks];```
6.任务运行情况

2016-10-08 23:45:51.053488 WHTaskManager[1601:597558] -- reach new task count = 5
2016-10-08 23:45:51.053611 WHTaskManager[1601:597558] -- reach new task count = 1
2016-10-08 23:45:51.053634 WHTaskManager[1601:597558] -- reach new task count = 1
2016-10-08 23:45:51.053649 WHTaskManager[1601:597558] -- reach new task count = 1
2016-10-08 23:45:51.053663 WHTaskManager[1601:597558] -- reach new task count = 1
2016-10-08 23:45:51.053677 WHTaskManager[1601:597558] -- reach new task count = 1```
结论:
1.第一次分配了5个任务。
2.每运行一个任务时,删除一个任务,因此也有一个新任务过来。
3.最终保证了同时运行的任务数量为5.
github链接: https://github.com/zhang33121/WHTaskManager.git

你可能感兴趣的:(iOS简单任务分配器TaskManager)