QSocketNotifier:套接字通知程序不能从另一个线程启用或禁用

news/2024/11/17 2:43:43/

本文介绍了QSocketNotifier:套接字通知程序不能从另一个线程启用或禁用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我尝试构建一个使用QT的多线程游戏服务器,因此,每个客户端都是基于独立线程的"QThread".现在,我需要将数据发送到同一游戏室中的其他客户端(在其他线程中).例如,当房主关闭游戏室时,游戏服务器需要将"room_closed"消息发送给其他客户端,但消息却相同:

QSocketNotifier:无法从以下位置启用或禁用套接字通知程序 另一个线程

ps:我尝试使用正弦/插槽,但仍然存在错误:

QObject:无法为处于不同状态的父级创建子级 线. (父母是QNativeSocketEngine(0x161764e8),父母的线程是 ClientThread(0x16196f10),当前线程为QThread(0x14a17278)

我该怎么办?

推荐答案

似乎您不能正确处理QObjects和QThreads,而Qt对此有所抱怨.

我建议您看看Qt文档:

  • 线程和QObject
  • QObject线程亲和力

快速指南:

  • 每个QObject实例都与一个QThread(QObject::thread())相关联.
  • 您可以使用QObject::moveTothread()更改其关联的线程,但是QObject必须没有父对象,并且必须从与QObject当前关联的线程进行调用.
  • 某些QObject(os子类)具有无法从与其关联的线程之外的其他线程调用的函数.这就是为什么您遇到关于QSocketNotifier的第一个错误的原因.
  • 您不能从一个线程创建QObject并为其提供与另一个线程关联的父对象.那是你的第二个错误.

这篇关于QSocketNotifier:套接字通知程序不能从另一个线程启用或禁用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!


http://www.ppmy.cn/news/84025.html

相关文章

【拼多多API 开发系列】百亿补贴商品详情接口,代码封装

为了进行电商平台 PDD 的API开发,首先我们需要做下面几件事情。 1)开发者注册一个账号 2)然后为每个 PDD 应用注册一个应用程序键(App Key) 。 3)下载 PDD API的SDK并掌握基本的API基础知识和调用 4)利用SD…

线程的状态,多线程带来的风险,synchronized关键字及死锁问题

目录 状态 线程的意义 多线程带来的风险——线程安全✅ 线程安全的概念 线程不安全的原因 抢占式执行,随机性调度 修改共享数据 原子性->加🔒 可见性 指令重排序 解决线程不安全问题(学完线程再总结) synchronized关键字——监…

TPlinker解读

参考: 关系抽取之TPLinker解读加源码分析 TPLinker 实体关系抽取代码解读 实体关系联合抽取:TPlinker TPLinker中文注释版 Tagging TPLinker模型需要对关系三元组(subject, relation, object)进行手动Tagging,过程分为三部分: &…

用工业显微镜来观察生物细胞

尝试用工业显微镜来观察生物细胞,成像质量不是很好,但感觉还是能看一下。专业生物用显微镜真的太贵了。 软件:JCameraPro可以在这下载:www.jfirmware.com 摄像机:OPLENIC Cam的某个OEM版。 OPLENIC Cam很多OEM版&am…

详解Python的Flash框架的常用语句 app = Flask(__name__),为什要以全局变量__name__作为初始化参数?

详解Python的Flash框架的常用语句: app Flask(__name__)这一语句创建了一个Flask应用程序对象。 Flask是一个基于Python的轻量级Web框架,用于构建Web应用程序。在使用Flask时,我们需要创建一个Flask应用程序对象,该对象将充当我…

华为OD机试之字符串重新排列、字符串重新排序(Java源码)

字符串重新排列、字符串重新排序 题目描述 给定一个字符串s,s包括以空格分隔的若干个单词,请对s进行如下处理后输出: 1、单词内部调整:对每个单词字母重新按字典序排序 2、单词间顺序调整: 1)统计每个单词…

sa:segment anything Demo学习与介绍

地址 论文地址:https://arxiv.org/pdf/2304.02643v1.pdf 代码:https://github.com/facebookresearch/segment-anything 贡献 1、对未知的数据集和任务具有良好的零样本(zero-shot)分割性能。分割过程可全自动分割(Everything模式)或由不同的手工提示(Prompt模式)驱动…

gcc编译器报错集锦

文章主要记录一下不常见的错误,供后续开发参考: 日期:2023-05-25 16:31:41 报错:cc1: all warnings being treated as errors 编译条件: Ubuntu 18.04,编译器:aarch64-mix210-linux-gcc编译代码…