Objective C中后台的异步方法

ave*_*123 2 asynchronous background thrift objective-c

我希望能够在不阻止UI的情况下发送数据.这些文件非常大,因此不能同步发送它们.

我有一个类,它实现了通过Apache Thrift发送数据的所有方法.

我见过的所有异步请求都使用NSURLRequest和NSURLConnection,但对于我的应用程序,我想利用我的类.

基本上,我想异步调用这个方法:

- (void)syncLocalData {
    Manager *stateManager = [[Manager alloc] init];
    [stateManager readDirectory];
}
Run Code Online (Sandbox Code Playgroud)

在readDirectory中,如果有文件,我会浏览设备目录并发送数据.

Mar*_*n R 6

GCD(Grand Central Dispatch)提供了易于使用的函数,可以在后台线程上异步执行代码:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [yourInstance syncLocalData];
});
Run Code Online (Sandbox Code Playgroud)

根据您的需要,您可以使用全局队列(这是"并发"队列),或创建自己的"串行"队列.