很久以前已經說過,C++指向類成員函數的指針非常變態, 如果要把類成員函數作為線程 pthread_create 的參數, 就更復雜!
class A{
public:
void run(){
}
static void *run_helper(void *arg){
((A *)arg)->run();
return (void *)NULL;
}
};
A a;
pthread_t t;
pthread_create(&t, NULL, &A::run_helper, &a);
本來我們希望把 a.run 作為參數, 為此, 必須創建一個 static 的 run_helper() 函數, 然後在 run_helper() 中調用 run(). www.2cto.com
Related posts:
TCP/IP 指數增長和線性增長的編程實現
關於 C++ 中的函數指針
C#封裝log4net
使用ServletContextListener在服務器啟動和關閉時創建和關閉緩存
如何使用ServletContextListener
你現在看的文章是:C++成員函數作為pthread_create參數