我已經繼承了一個由三層代碼組成的項目。最低層是與硬件交互的本地C++。這是成熟的,穩定的和經過充分測試的。中級代碼是C++/CLI,它與包含UI元素和一些附加功能的頂級C#代碼進行交互。這個C#代碼是不完整的,並且在開發中被衝擊:它經常崩潰並且不適合用途。我的任務是調試並完成它。在Visual Studio 2008中調試多線程C# - C++/CLI - C++解決方案:這些線程是什麼?
我正在使用VS 2008來瀏覽多線程代碼,以瞭解該項目從哪裏開始。簡單的問題:在「線程」窗口中,我有兩個命名線程:一個與某些底層硬件(即C++代碼)和一個用戶界面線程通信的工作線程。
但是,單步執行代碼時,有相當多的工作線程沒有名稱,也沒有與它們關聯的調用堆棧,這些線程似乎是隨機出現的。它們在「調試位置」工具欄中沒有條目,並且在選中「在源中顯示線程」時,它們在代碼中看起來不可見。
他們是什麼,我應該關心他們嗎?它們看起來並不是來自本地代碼(因爲它使用Boost進行線程化,而且從調用堆棧中可以看出這一點)。凍結它們或改變它們的優先級似乎沒有效果。
我還沒有調試過這麼複雜的多線程代碼之前,所以任何意見非常讚賞!
感謝您的快速和有益的答案! – HypersonicNinja 2010-07-16 11:45:26