子线程(hander)更新数据,以及注意的要点

1.布局文件中,需要输入的EditText里面不应该写上text属性,会带来数据延迟或者不更新

2.把需要获取的值把赋值过程放到线程中更新UI

private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
tvSelf.setText(“xxxx”);
room=xxxx
tvRoom.setText(“房间号:”+xxx);
break;
}
}
};

4.在oncreate方法中使用线程传递信息
new Thread(new Runnable() {
@Override
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}).start();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Qt 中,线程之间可以通过信号和槽(signals and slots)来交互数据。下面是一个示例代码,演示了两个线程之间的数据交互: ```cpp #include <QThread> #include <QDebug> // 第一个线程 class WorkerThread1 : public QThread { Q_OBJECT public: void run() override { qDebug() << "WorkerThread1 开始运行"; // 模拟耗时操作 sleep(2); // 发送信号给第二个线程 emit dataReady("Hello from WorkerThread1"); qDebug() << "WorkerThread1 运行结束"; } signals: void dataReady(const QString& data); }; // 第二个线程 class WorkerThread2 : public QThread { Q_OBJECT public slots: void handleData(const QString& data) { qDebug() << "WorkerThread2 收到数据:" << data; } }; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); WorkerThread1 workerThread1; WorkerThread2 workerThread2; // 连接信号和槽 QObject::connect(&workerThread1, &WorkerThread1::dataReady, &workerThread2, &WorkerThread2::handleData); // 启动两个线程 workerThread1.start(); workerThread2.start(); return a.exec(); } #include "main.moc" ``` 在上面的示例中,`WorkerThread1` 是第一个线程,它在 `run` 函数中执行一些耗时操作,并通过信号 `dataReady` 发送数据给第二个线程。`WorkerThread2` 是第二个线程,它定义了一个槽函数 `handleData` 来处理接收到的数据。 在 `main` 函数中,我们创建了两个线程的实例 `workerThread1` 和 `workerThread2`,然后使用 `QObject::connect` 函数将第一个线程的信号 `dataReady` 连接到第二个线程的槽函数 `handleData`。这样,当第一个线程发送数据时,第二个线程会接收到并处理。 运行代码后,你将看到输出中显示第二个线程收到了来自第一个线程数据。这就是两个线程之间的数据交互。请注意,为了使信号和槽能够工作,需要在类定义前加上 `Q_OBJECT` 宏,并在文件末尾添加 `#include "main.moc"` 来启用 Qt 的元对象编译器(MOC)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值