我通常在單線程應用程序上工作,並且一般從來沒有真正煩惱處理線程。我對事物如何工作的理解 - 當然可能是錯誤的 - 只要我們總是處理單線程代碼(即沒有分叉或類似的東西),它總是會在同一個線程中執行。我可以確定我寫的代碼總是在同一個線程中執行嗎?
這個假設是否正確?我有一個模糊的想法,UI庫/框架可能會產生自己的線程來處理GUI的東西(這說明了Windows任務管理器告訴我,我的'單線程'應用程序實際上運行在10個線程上),但我猜猜這不應該影響我?
這如何適用於COM?例如,如果我要在代碼中創建一個COM組件的實例,並且COM組件將一些信息寫入基於線程的位置(例如使用System.Threading.Thread.GetData
),我的應用程序能夠獲取該信息嗎?
因此,在總結:
在單線程代碼,我可以肯定的是無論我存儲在一個基於線程的位置可以檢索來自其他地方的代碼?
如果單線程代碼要創建存儲的一些信息在一個基於線程的位置的COM組件的實例,可以說是從其他地方類似的檢索?
你是對的,問題一個是非常愚蠢的。基本上,我想確保我的代碼在整個線程上運行。 – jpoh 2008-11-13 09:47:25