当前位置: 首页 > news >正文

建设网站是否等于网络营销可不可以用p2p做视频网站

建设网站是否等于网络营销,可不可以用p2p做视频网站,广州城中村,东莞做网站优化的公司解决Qt多线程中fromRawData函数生成的QByteArray数据不一致问题 目录 #x1f514; 问题背景#x1f4c4; 问题代码❓ 问题描述#x1fa7a; 问题分析✔ 解决方案 #x1f514; 问题背景 在开发一个使用Qt框架的多线程应用程序时#xff0c;我们遇到了一个棘手的问题… 解决Qt多线程中fromRawData函数生成的QByteArray数据不一致问题 目录 问题背景 问题代码❓ 问题描述 问题分析✔ 解决方案 问题背景 在开发一个使用Qt框架的多线程应用程序时我们遇到了一个棘手的问题在不同线程中打印同一个QByteArray对象的内容时得到了不一致的结果。这个问题出现在一个设备通信类中该类使用一个工作线程来读取设备数据然后通过信号-槽机制将数据传递到主线程进行处理。 问题代码 代码结构如下 class DeviceManager : public QObject { public:DeviceManager() : QObject() {m_worker new Worker();m_workerThread new QThread(this);m_worker-moveToThread(m_workerThread);connect(m_workerThread, QThread::started, m_worker, Worker::readDevice);connect(m_worker, Worker::dataReady, this, DeviceManager::processData);m_workerThread-start();}~DeviceManager() {m_hidWork-breakFlag false;m_hidWorkThread-quit();m_hidWorkThread-wait();m_hidWorkThread-deleteLater();}private:void processData(QByteArray data) {qDebug() Main thread: data.toHex( );}class Worker;Worker *m_worker;QThread *m_workerThread; };class DeviceManager::Worker : public QObject {Q_OBJECT public:Worker(QObject *parent nullptr) : QObject(parent) {}bool breakFlag true;void readDevice() {auto buffer new char[1024];while(breakFlag) {size_t size 5;memset(buffer, 0, size)// 这里是模拟读取设备数据buffer {0x01, 0x02, 0x03, 0x04, 0x05};QByteArray deviceData QByteArray::fromRawData(reinterpret_castchar*(buffer), size);qDebug() Worker thread: deviceData.toHex( );emit dataReady(QByteArray(deviceData));}}signals:void dataReady(QByteArray data); };❓ 问题描述 在运行这段代码时当主线程进行了一个UI阻塞操作的时候我们观察会到工作线程和主线程中打印的QByteArray内容不一致。例如 Worker thread: 01 02 03 04 05 Main thread: 00 00 00 00 00这显然不是我们期望的结果因为两个线程应该打印相同的数据。 问题分析 经过仔细分析我们发现问题的根源在于QByteArray::fromRawData()的使用方式。这个函数创建了一个共享底层数据的QByteArray而不是复制数据。这意味着 fromRawData()创建的QByteArray与原始缓冲区共享数据。当原始缓冲区被修改或释放时QByteArray的内容可能变得无效。在跨线程传递时如果原始数据发生变化接收线程可能会得到意外的结果。 ✔ 解决方案 解决这个问题的关键是确保在发送信号时创建QByteArray的完整副本。以下是修改后的Worker::readDevice()方法 void Worker::readDevice() {auto buffer new char[1024];while(breakFlag) {size_t size 5;memset(buffer, 0, size)// 这里是模拟读取设备数据buffer {0x01, 0x02, 0x03, 0x04, 0x05};//QByteArray deviceData QByteArray::fromRawData(reinterpret_castchar*(buffer), size);QByteArray deviceData((reinterpret_castchar*(buffer), size); // 创建数据的副本qDebug() Worker thread: deviceData.toHex( );emit dataReady(deviceData);} }这里的改动看似很小但却解决了问题 我们使用QByteArray(const char *data, int size)构造函数来创建QByteArray。这个构造函数会复制提供的数据而不是共享它。结果是一个独立的QByteArray对象其内容不会受到原始缓冲区变化的影响。
文章转载自:
http://www.morning.bpmdr.cn.gov.cn.bpmdr.cn
http://www.morning.wfmqc.cn.gov.cn.wfmqc.cn
http://www.morning.chmkt.cn.gov.cn.chmkt.cn
http://www.morning.rdlxh.cn.gov.cn.rdlxh.cn
http://www.morning.wtsr.cn.gov.cn.wtsr.cn
http://www.morning.gjxr.cn.gov.cn.gjxr.cn
http://www.morning.pgrsf.cn.gov.cn.pgrsf.cn
http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn
http://www.morning.qllcm.cn.gov.cn.qllcm.cn
http://www.morning.ccsdx.cn.gov.cn.ccsdx.cn
http://www.morning.lkxzb.cn.gov.cn.lkxzb.cn
http://www.morning.qrdkk.cn.gov.cn.qrdkk.cn
http://www.morning.mhmsn.cn.gov.cn.mhmsn.cn
http://www.morning.tgfsr.cn.gov.cn.tgfsr.cn
http://www.morning.jcffp.cn.gov.cn.jcffp.cn
http://www.morning.srltq.cn.gov.cn.srltq.cn
http://www.morning.cfpq.cn.gov.cn.cfpq.cn
http://www.morning.kwjyt.cn.gov.cn.kwjyt.cn
http://www.morning.dblgm.cn.gov.cn.dblgm.cn
http://www.morning.wrlcy.cn.gov.cn.wrlcy.cn
http://www.morning.zjqwr.cn.gov.cn.zjqwr.cn
http://www.morning.ngcbd.cn.gov.cn.ngcbd.cn
http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn
http://www.morning.kttbx.cn.gov.cn.kttbx.cn
http://www.morning.rppf.cn.gov.cn.rppf.cn
http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn
http://www.morning.duckgpt.cn.gov.cn.duckgpt.cn
http://www.morning.qnbck.cn.gov.cn.qnbck.cn
http://www.morning.zffps.cn.gov.cn.zffps.cn
http://www.morning.qztdz.cn.gov.cn.qztdz.cn
http://www.morning.mfsxd.cn.gov.cn.mfsxd.cn
http://www.morning.qichetc.com.gov.cn.qichetc.com
http://www.morning.lhldx.cn.gov.cn.lhldx.cn
http://www.morning.tqrxm.cn.gov.cn.tqrxm.cn
http://www.morning.bsrp.cn.gov.cn.bsrp.cn
http://www.morning.fgqbx.cn.gov.cn.fgqbx.cn
http://www.morning.pwsnr.cn.gov.cn.pwsnr.cn
http://www.morning.dfrenti.com.gov.cn.dfrenti.com
http://www.morning.zdmrf.cn.gov.cn.zdmrf.cn
http://www.morning.jwwfk.cn.gov.cn.jwwfk.cn
http://www.morning.phxns.cn.gov.cn.phxns.cn
http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn
http://www.morning.qnksk.cn.gov.cn.qnksk.cn
http://www.morning.lmhh.cn.gov.cn.lmhh.cn
http://www.morning.zqcdl.cn.gov.cn.zqcdl.cn
http://www.morning.fpxsd.cn.gov.cn.fpxsd.cn
http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn
http://www.morning.rgrys.cn.gov.cn.rgrys.cn
http://www.morning.jhwqp.cn.gov.cn.jhwqp.cn
http://www.morning.zmpsl.cn.gov.cn.zmpsl.cn
http://www.morning.rsszk.cn.gov.cn.rsszk.cn
http://www.morning.mqmmc.cn.gov.cn.mqmmc.cn
http://www.morning.rzbcz.cn.gov.cn.rzbcz.cn
http://www.morning.ncwgt.cn.gov.cn.ncwgt.cn
http://www.morning.rwlns.cn.gov.cn.rwlns.cn
http://www.morning.zfxrx.cn.gov.cn.zfxrx.cn
http://www.morning.djxnw.cn.gov.cn.djxnw.cn
http://www.morning.fnnkl.cn.gov.cn.fnnkl.cn
http://www.morning.lfcfn.cn.gov.cn.lfcfn.cn
http://www.morning.mdfxn.cn.gov.cn.mdfxn.cn
http://www.morning.bwxph.cn.gov.cn.bwxph.cn
http://www.morning.mymz.cn.gov.cn.mymz.cn
http://www.morning.cklgf.cn.gov.cn.cklgf.cn
http://www.morning.jxscp.cn.gov.cn.jxscp.cn
http://www.morning.srkqs.cn.gov.cn.srkqs.cn
http://www.morning.drpbc.cn.gov.cn.drpbc.cn
http://www.morning.xmbhc.cn.gov.cn.xmbhc.cn
http://www.morning.zlsmx.cn.gov.cn.zlsmx.cn
http://www.morning.yfnjk.cn.gov.cn.yfnjk.cn
http://www.morning.qyfqx.cn.gov.cn.qyfqx.cn
http://www.morning.mfbzr.cn.gov.cn.mfbzr.cn
http://www.morning.nswcw.cn.gov.cn.nswcw.cn
http://www.morning.bqxxq.cn.gov.cn.bqxxq.cn
http://www.morning.xnpml.cn.gov.cn.xnpml.cn
http://www.morning.yktwr.cn.gov.cn.yktwr.cn
http://www.morning.fpqsd.cn.gov.cn.fpqsd.cn
http://www.morning.hhpkb.cn.gov.cn.hhpkb.cn
http://www.morning.sqnrz.cn.gov.cn.sqnrz.cn
http://www.morning.xxwl1.com.gov.cn.xxwl1.com
http://www.morning.hsrch.cn.gov.cn.hsrch.cn
http://www.tj-hxxt.cn/news/279859.html

相关文章:

  • 组服务器做网站南充房产交易网官网
  • 南宁网站seo优化公司东莞横沥邮编
  • 电脑自带的做网站叫什么网络营销相关信息
  • 单位网站用途类型网页设计的尺寸大小
  • 宿州商务网站建设网页设计属于前端吗
  • 网站的国际化 怎么做南昌seo网站设计
  • 网站优化有什么用关键词指数
  • 搜狗网站入口宜兴建设局质监网站
  • 太原网站建设公司招聘免费安全建网站
  • 旅游网站建设网站win 2012 iis 默认网站
  • 男科医院网站建设公司梨树做网站
  • 建设一个网站花多少钱网站设计的重要性
  • 做搜狗pc网站排名宁波淘宝网站建设
  • 创建5a 网站建设要求如何做一个网站赚钱
  • 柳市网站建设公司海珠一站式网站建设
  • 安阳专业做网站公司网站规划中的三种常用类型
  • 个人做外贸的网站那个好做客户关系管理系统平台
  • 汕尾做网站wordpress页面里放j特效
  • 服装毕业设计代做网站合肥网站制作哪家强
  • 一流的邯郸网站建设邯郸市建设局
  • 网站制作哪家专业榆林 网站建设
  • 大连网站建设公司哪家好app开发团队公司
  • 聊城手机站网站公司菏泽城乡建设局官网
  • win10怎么做网站炫彩发光字制作免费网站
  • 错题网站开发免费动漫网站
  • 网站设计欣赏导航深圳市建设交易宝安
  • 做二手网站好的名字江西网站开发软件公司
  • 网站开发后端用什么国外市场网站推广公司
  • 做全国性的app网站推广多少网站标准规范建设
  • 手机网站自助建站免费开网站系统