QT: socket déclarants ne peut pas être activé à partir d'un autre thread

J'ai un QTcpSocket et j'ai besoin de contrôler elle - écriture + lecture à l'aide de plusieurs threads.

Cela fonctionne bien en QT4, mais dans QT5 j'obtiens cette erreur et il semble que seul 1 thread a accès à la socket en même temps. Comment puis-je faire il possible pour un socket pour être accessible par plusieurs threads?

Fondamentalement, je veux créer 1 fil pour la lecture et 1 filetage pour l'écriture de données, afin que je puisse de manière asynchrone de lire et de traiter les données en faisant autre chose dans le reste de l'application.

Note: réponse à la Qt - Poignée de QTcpSocket dans un nouveau thread n'aide pas ici, car elle explique comment transférer de la prise de thread 1 thread 2 et ensuite l'utiliser à partir de fil de 2 seulement. J'ai besoin de l'utiliser à partir de deux fils.

Pourquoi ne pouvez-vous pas juste envoyer des messages via des signaux et des slots pour le fil d'hébergement le QTcpSocket exemple? Quand vous dites "je reçois cette erreur", il serait utile d'ajouter l'erreur de la question.
Eh bien, une lecture et une écriture fil devrait être OK. Plus d'un recv va être un problème, car un TCP de flux d'octets ne peut pas envoyer des messages de plus d'un octet aucun rx thread peut obtenir dans et rx partielle de la mémoire tampon. Je dirais que @Merlin069 a la solution à cette file d'attente de requête/réponse objets à un fil.
vous pouvez utiliser de la croix-fil de signaux/slots pour envoyer autour de la lecture des données/les données à écrire. Je me demande encore ce que le cas d'utilisation est de partager une seule prise, je m'attends à ce qu'il exige beaucoup plus élevé au niveau de la synchronisation (comme Martin l'indique) pour être d'une quelconque utilité.
message d'erreur" erreur dans le sujet (socket déclarants ne peut pas être activé à partir d'un autre thread)
oui - c'est ce que je suis en train de réaliser l'une pour l'écriture, et 1 pour la lecture, mais apparemment je ne peux pas créer un thread pour cette

OriginalL'auteur Petr | 2013-11-18