このコードの意味は何ですか?
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
TMBaseParser *parser=[[TMBaseParser alloc] init];
parser.delegate=self;
NSString *post =nil;
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding];
[parser parseForServiceType:TMServiceCategories postdata:postData];
});
簡単に説明してください。
のコード
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
});
バックグラウンドスレッドで非同期に実行されます。これは、データの解析に時間がかかるタスクであり、メインスレッドをブロックしてすべてのアニメーションを停止し、アプリケーションが応答しなくなるためです。
さらに詳しく知りたい場合は、Appleのドキュメントである Grand Central Dispatch および Dispatch Queue を参照してください。
上記のコードスニペットが機能しない場合は、これを試してください:
目的C:
dispatch_async(dispatch_get_main_queue(), ^{
});
UI更新は常にメインキューから実行する必要があります。 「^」記号は、ブロックの開始を示します。
スウィフト3:
DispatchQueue.global(qos: .background).async {
print("This is run on the background queue")
DispatchQueue.main.async {
print("This is run on the main queue, after the previous code in outer block")
}
}
それは、Grand Central Dispatchブロックです。