2

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

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

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

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

- (void)syncLocalData {
    Manager *stateManager = [[Manager alloc] init];
    [stateManager readDirectory];
}

在 readDirectory 中,如果有文件,我会遍历设备目录并发送数据。

4

1 回答 1

7

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

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [yourInstance syncLocalData];
});

根据您的需要,您可以使用全局队列(这是一个“并发”队列),或者创建自己的“串行”队列。

于 2013-08-01T17:44:59.173 回答