最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Qt 中多線程的使用方法2--自定義working()函數(shù)

2023-06-02 10:37 作者:鋼廠小霸王_X  | 我要投稿

上回說到,重寫run()函數(shù)不能傳入?yún)?shù),這期這個(gè)自定義working()則可以解決這個(gè)問題。

其具體操作步驟如下:

? 1. 創(chuàng)建一個(gè)新的類,讓這個(gè)類從 QObject 派生

2.?在這個(gè)類中添加一個(gè)公共的成員函數(shù),函數(shù)體就是我們要子線程中執(zhí)行的業(yè)務(wù)邏輯

3.? 在主線程中創(chuàng)建一個(gè) QThread 對(duì)象,這就是子線程的對(duì)象

4.在主線程中創(chuàng)建工作的類對(duì)象(千萬(wàn)不要指定給創(chuàng)建的對(duì)象指定父對(duì)象)

5.?將 MyWork 對(duì)象移動(dòng)到創(chuàng)建的子線程對(duì)象中,需要調(diào)用 QObject 類提供的moveToThread() 方法

6. 啟動(dòng)子線程,調(diào)用 start(), 這時(shí)候線程啟動(dòng)了,但是移動(dòng)到線程中的對(duì)象并沒有工作

7. 調(diào)用 MyWork 類對(duì)象的工作函數(shù),讓這個(gè)函數(shù)開始執(zhí)行.

示例代碼:

還是之前的例子,改成working()方法,子線程處理事件,主線程處理返回結(jié)果

mytread.h:

mytread.cpp:

widget.h:

widget.cpp:

不同子線程的地址不同

使用這種多線程方式,假設(shè)有多個(gè)不相關(guān)的業(yè)務(wù)流程需要被處理,那么就可以創(chuàng)建多個(gè)類似于 MyWork 的類,將業(yè)務(wù)流程放多類的公共成員函數(shù)中,然后將這個(gè)業(yè)務(wù)類的實(shí)例對(duì)象移動(dòng)到對(duì)應(yīng)的子線程中 moveToThread() 就可以了,這樣可以讓編寫的程序更加靈活,可讀性更強(qiáng),更易于維護(hù)。

最后不要忘了釋放線程資源


Qt 中多線程的使用方法2--自定義working()函數(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
江都市| 紫阳县| 和顺县| 西乡县| 洪湖市| 余庆县| 阳山县| 宁海县| 天柱县| 邢台县| 桓台县| 景洪市| 通道| 海盐县| 乐业县| 谷城县| 霞浦县| 衡东县| 洪泽县| 云浮市| 怀集县| 商河县| 万安县| 五莲县| 怀来县| 崇文区| 陇南市| 平定县| 辽宁省| 普陀区| 唐山市| 夏河县| 贡嘎县| 巫溪县| 内乡县| 乌鲁木齐县| 金沙县| 梁山县| 贵南县| 德昌县| 赣州市|