bonus-material-app/nativeplugins/Mpaas-Scan/ios/mPaas.framework/Headers/MPThreadManager.h

176 lines
6.9 KiB
C
Raw Normal View History

2024-12-20 09:23:59 +08:00
//
// MPThreadManager.h
// MPThreadManager
//
// Created by shenmo on 12/28/14.
// Copyright (c) 2014 shenmo. All rights reserved.
//
#import <UIKit/UIKit.h>
#pragma mark APThreadManager.h
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
typedef enum _APTBizType
{
APTBiz_Unknown = 0,
APTBiz_Home = 10000,
APTBiz_O2O = 20000,
APTBiz_O2OPurchase = 21000,
APBiz_O2OCommon = 22000,
APBiz_O2OMist = 23000,
APBiz_O2ORect = 24000,
APTBiz_Social = 30000,
APTBiz_PublicPlatform = 31000,
APTBiz_Wealth = 40000,
APTBiz_CDP = 50000,
APTBiz_MovieTicket = 60000,
APTBiz_Bill = 70000,
APTBiz_CardSDK = 80000,
APBiz_BeeHive = 90000,
APBiz_ScanCode = 100000,
APBiz_OnsitePay = 110000,
APBiz_ALPPass = 120000,
APTBiz_RedEnvelope = 130000,
APTBiz_Frame = 1000000,
APTBiz_Network = 1010000,
APTBiz_Media = 1020000,
APTBiz_Account = 1030000,
APTBiz_Monitor = 1040000,
// 其它业务类型,挨着扩展小类型
// ...
}APTBizType;
/**
* 线block
* APTMainCall和APTMainACall的区别()
* APTMainCall - 线block是同步调用的if([NSThread isMainThread])block();
* APTMainACall - 线block是异步调用的dispatch_async(dispatch_get_main_queue(), block);
*
* @param bizType 便线使0
* @param tag 便线__FUNCTION__
* @param delayTime 0
* @param priority 便5
* 10000:
* 0
* 便double就和业务模块一致都用doubleNSTimeInterval等
*/
void APTMainCall(APTBizType bizType, const char* tag, double delayTime, NSOperationQueuePriority priority, dispatch_block_t block);
void APTMainACall(APTBizType bizType, const char* tag, double delayTime, NSOperationQueuePriority priority, dispatch_block_t block);
/**
* 线便线使
*
* @param bizType 便线使0
* @param tag 便线__FUNCTION__
* @param delayTime 0
* @param queue block运行的queue
* 便double就和业务模块一致都用doubleNSTimeInterval等
*/
void APTAsyncCall(APTBizType bizType, const char *tag, double delayTime, dispatch_queue_t queue, dispatch_block_t block);
void APTAsyncOperationQueueCall(APTBizType bizType, const char *tag, NSOperationQueue *queue, dispatch_block_t block);
/**
* 使defaultThreadPool进行处理
*/
void APAsyncCall(NSOperationQueuePriority priority, dispatch_block_t block);
// Deprecated use functions above
void APMainCall(dispatch_block_t block) __deprecated;
void APPrimitiveAsyncCall(const char *function, int line, NSOperationQueuePriority priority, dispatch_block_t block) __deprecated;
void APMainThreadCall(const char *function, int line, dispatch_block_t block) __deprecated;
#ifdef __cplusplus
}
#endif // __cplusplus
#pragma mark APThreadPool.h
typedef NS_ENUM(NSInteger, APTaskPriority) {
APTaskPriorityVeryLow = -8L,
APTaskPriorityLow = -4L,
APTaskPriorityNormal = 0,
APTaskPriorityHigh = 4,
APTaskPriorityVeryHigh = 8
};
/**
* 线
*/
@interface APThreadPool : NSObject
@property NSInteger maxConcurrentTaskCount;
@property (getter = isSuspended) BOOL suspended; // 设置线程池是否挂起。
@property (getter = isPaused) BOOL paused; // 挂起线程池时,是否有任务暂停。
/**
* 线10线
*
* @return 线
*/
+ (APThreadPool *)defaultThreadPool;
/**
* 线2线线
*
* @return 线
*/
+ (APThreadPool *)preloadThreadPoolForLogin;
/**
* rpc()线5线线
*
* @return rpc()线
*/
+ (APThreadPool *)networkProcessThreadPool;
/**
* rpc事件的线程池线
*
* @return rpc线程池对象
*/
+ (APThreadPool *)loginRPCProcessThreadPool;
/**
* 线cpu个数2倍10
*
* @return 线
*/
+ (APThreadPool *)coreProcessThreadPool;
/**
* 5Tab显示相关的线程池cpu个数2倍10
*
* @return 线
*/
+ (APThreadPool *)homeShowThreadPool;
/**
* 线
*
* @param taskId 线
* @param priority
* @param block block
*/
- (void)addTask:(NSString *)taskId priority:(APTaskPriority)priority block:(void (^)(void))block;
/**
* 线线线
*
* @param taskId 线
* @param priority
* @param block block
*/
- (void)addTaskIfSuspended:(NSString *)taskId priority:(APTaskPriority)priority block:(void (^)(void))block;
@end