我没有调用exec()我的代码,但是timerandQUdpSocket工作正常。是exec()用来等待一个event继续吗?
更新:timer正在工作,因为我没有调用moveToThread(this),QThread这意味着它QThread实际上仍然是main thread. 至于QUdpSocket我使用 polling functions。所以它不需要与signals.
提示:如果你需要做init一些事情,这需要event loop在你的 中QThread,你可以delay调用moveToThread直到你不再需要signals,这在程序加载时很实用。您也不需要在构造函数中调用它(run()例如,您可以在内部调用它),只需将this QThread指针复制到变量并call使用指针在稍后/其他地方进行。