每每遇到bug,這意味着,要麼幾分鐘內解決,要麼耗費大量的時間和精力才能搞定
我將使用多線程時遇到的這些問題,以及解決方案總結了一下,藉此提醒自己。
1.怎麼使用多線程?
引用頭文件pthread.h,然後可以使用多線程方面的功能了。詳見MSDN或者自行百度
2.VS提示找不到pthread.h?
之前有人公佈過解決辦法,這裏貼上鍊接:點我跳轉
3.VS提示:編譯錯誤C2011 “timespec”:“struct”類型重定義
還是那個鏈接,在文章最下面。點我跳轉
4.VS提示:編譯錯誤C2011 “timespec”:“struct”類型重定義
可修改pthread.h文件,在
**#if !defined( PTHREAD_H )
#define PTHREAD_H**
下面加上一行宏定義
#define HAVE_STRUCT_TIMESPEC
可以解決“timespec”:“struct”類型重定義錯誤
5. 運行的時候提示:無法啓動此程序,因爲計算機中丟失pthreadVC2.dll
可以把pthread的文件解壓縮後,把Pre-built.2文件夾中的pthreadVC2.dll複製後放到C:\Windows\SysWOW64中(64位系統)
6.VS運行的時候提示:錯誤 1 error LNK2019: 無法解析的外部符號 __imp__pthread_create,該符號在函數 _main 中被引用
此時需要在代碼中加入
#pragma comment(lib, "pthreadVC2.lib")
這裏附上成功運行多線程的截圖:創建線程並讓它負責響應熱鍵事件。沒有多線程,它可能都沒辦法一邊運行程序一邊監視熱鍵,經測試,可以直接靜態編譯。
對了,使用多線程完畢之後,別忘了使用關閉多線程的代碼啊。