//
//  YCKDispatch.h
//  YCKit
//
//  Created by huangshan on 15/11/4.
//  Copyright © 2015年 YeeCall. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface YCKDispatch : NSObject

+(void) runOnMainQueue:(void (^)(void))block;

// this function make the block not run immedinately, instead, it will run on main queue asynchronizely after all prior tasks finished, it may be needed in some particular circumstance.
+(void) runAsyncOnMainQueue:(void (^)(void))block;

+(void) runOnMainQueue:(void (^)(void))block after:(float)delay;

+(void) runOnHighPorioityQueue:(void (^)(void))block;

+(void) runOnLowPorioityQueue:(void (^)(void))block;

+(void) runOnDefaultPorioityQueue:(void (^)(void))block;

+(void) runOnSerialQueue:(void(^)(void))block;

+(void) runOnSharedSocketQueue:(void(^)(void))block;

+(dispatch_queue_t) sharedQueue;

+(dispatch_queue_t) sharedSocketQueue;

@end
