最近在學習多執行緒程式設計技術過程中,遇到乙個問題:如何獲取執行緒的返回值?
執行緒定義之初:uint class::thread(lpvoid lpparam)
開啟執行緒:cwinthread *hthread = afxbeginthread(thread, lpparam, 0, 0, null);
獲得執行緒返回值bresult的方法有兩個:
1、通過 全域性變數
執行緒函式的定義中bresult為全域性變數,直接訪問bresult就可以獲得執行緒函式的返回值,並結合執行緒函式的定義判斷執行緒退出時的狀態。
2、通過 api 函式
函式: getexitcodethread()
功能: 獲取乙個結束執行緒的返回值
函式原形: bool getexitcodethread( handle hthread, lpdword lpexitcode);
引數: hthread 指向欲獲取返回值的執行緒物件的控制代碼
lpexitcode 用於儲存執行緒的返回值
返回值:函式執行成功則返回非0值,否則返回 0(false)
值得注意的是:呼叫該函式獲得的返回值 lpexitcode = bresult,除非執行緒函式定義之初能夠通過 bresult 判斷執行緒的完成度,否則不能通過 lpexitcode
的值對執行緒的狀態做出判斷。那麼,能否通過getexitcodethread()函式的返回值對執行緒的狀態做出判斷哪? 當然這也是不行的。
python獲得子執行緒的返回值
import sys import threading import queue q queue.queue def worker1 x,y func name sys.getframe f code.co name print s run func name q.put x y,func name...
python獲得子執行緒的返回值
import sys import threading import queue q queue.queue defworker1 x,y func name sys.getframe f code.co name print s run func name q.put x y,func name ...
如何實現處理執行緒的返回值
方法一 myrunnable類 子執行緒,預設value為null,等待3s之後改變其值 public class myrunnable implements runnable catch interruptedexception e value libai public string getval...