2.如果各線程一定要使用全局變量,哪麼該全局變量一定要讀寫保護(臨界區,互斥等技術)。
3.不要在線程之間共享GDI對象。
4.確定你知道你的線程狀態,不要徑自結束程序而不等待它們的結束;
5.讓主線程處理用戶界面(UI)。
6.千萬不要在一個臨界區中調用Sleep()或Wait..()API函數;不要長時間鎖住一份資源。
7.線程之間(包括主線程與工作線程,工作線程與工作線程)的通訊,可通過互發消息解決。當然這時工作線程要自己內建消息循環接收處理消息。
線程特點:
1.各線程的執行是無序的,即使先創建的線程也不一定比後創建的線程早運行或早執行或早結束。
2.主線程(primary thread):程序啓動後就執行的那個線程稱爲主線程。
主線程有兩個特點:
第一,它必須負責GUI(圖形用戶接口)程序中的主消息循環。
第二,主線程的結束,會使得程序中的所有線程(包括進程內的所有Worker線程)都被強迫結束。