Я пишу приложение, которое собирается отправлять/получать данные по tcp-соединениям, и я хотел запланировать чтение/запись в цикле выполнения другого потока. Значение Thread 1 создает соединение и планирует его в цикле выполнения Thread 2. Я не могу найти какой-либо способ доступа к циклу запуска другого потока, поэтому я написал фрагмент кода, который будет запускать вторичный поток, который будет хранить его цикл запуска в глобально доступном месте. Я хотел бы знать, правильно ли это сделать, или если есть какой-либо другой/лучший способ сделать то же самое, а также, если способ, которым я это сделал, вызовет проблемы, такие как доступ к циклу запуска, не являющийся потокобезопасным и вызывающий если я попытаюсь запланировать несколько вещей в цикле выполнения одного потока из нескольких потоков.Как мне запланировать что-то в runloop другого потока?
Что-то вроде следующего.
[NSRunLoop currentRunLoop] -> Это можно сделать из нити которого runloop Я хочу получить доступ к
NSRunLoop * secondthreadrunloop = [secondthread getRunLoop]; -> Но есть ли что-нибудь подобное?
Если вам нужно создать приложение, использующее TCP, я бы настоятельно рекомендовал использовать эту библиотеку https://github.com/robbiehanson/CocoaAsyncSocket, вместо того чтобы писать все самостоятельно. сэкономит много работы и нервов ... – nburk
Мне не разрешено использовать ничего, кроме того, что предоставляет яблоко. Спасибо хоть. – Shehzan
Взгляните на «Grand Central Dispatch» (GCD) и функции dispatch_sync, dispatch_async и dispatch_once – TheDarkKnight