NSStream için iş parçacığı işlemini açıklayan düzgün bir belge bulamadım. Spesifik olmak gerekirse, NSInputStream için gidelim. Objective-C'nin benim için işlenmesi şu anda sadece bir gizem. Çünkü basit görünüyor.scheduleInRunLoop - iş parçacıklı ağ bağlantıları
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
Sen oldukça serin olduğunu düşündüm giriş akışı aday olacağını çalıştırmak döngü, belirtebilirsiniz: benim sorum Ne
öncelikle bu hat anlamına gelir. Sorun şu ki, giriş ve çıkış akışlarının kendi iş parçacıklarında çalışmasını istiyorsanız ve her ikisi de tek bir sınıfta, örneğin Bağlantıda, örneklendiğinde, bunları kendi iş parçacıklarında çalışmasını nasıl sağlayabilirsiniz?
Sormamın nedeni delegeler yüzünden. Önceden [inputStream setDelegate:self]
yaptık, yani gelen/giden verileri işlemek için stream:handleEvent
bildirmeliyiz.
Sonuç olarak benim sorum, giriş ve çıkış akışını oluşturan bir sınıfa sahip olmanız durumunda, her bir akışı nasıl işliyorsunuz ve akış etkinliklerini geçerli sınıfa taşımaya ilişkin sorumluluğu nasıl veriyorsunuz?
-
Geçerli sınıfta hem parçacıkları sorumluluğunu temsilci olamaz
- , sen olurdu:
[inputStream setDelegate:self]; [outputStream setDelegate:self]; [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [inputStream open]; [outputStream open];
aşağıdaki düşünüyorum: Burada
chomp için bazı kod nesneleri ayırmak için yetki verin. - Her iki akış için bir iş parçacığı mı? (Şahsen böyle düşünmüyorum, çünkü giriş/çıkış eşzamanlı olarak çalışacaktır)
- Bunu yanlış anlıyorum ve ayrı bir çalışma döngüsü oluşturabilir ve ayrı bir iş parçacığına karşı zamanlama programıRunLoop'u arayabilirsiniz?
Herhangi bir fikir?
-1 Sadece kod bir cevap değil. Bunu açıklamalısın. Yaptığınız şeyi neden yaptığınız hakkında sadece küçük bir açıklama bile. – Fogmeister
Biraz açıklama iyi olurdu. Bunu reddetmemek için kendimi zorladım .. –