我知道StackWalk64像所有dbghelp函數一樣是單線程的,因爲它在MSDN文檔中有明確說明。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms680650(v=vs.85).aspxCaptureStackBackTrace單線程?
「所有DbgHelp函數,比如這個,都是單線程的,因此,從多個線程調用這個函數可能會導致意外的行爲或內存損壞,爲了避免這種情況,您必須同步所有併發調用從多個線程到這個函數。「
然而,CaptureStackBackTrace的MSDN文檔http://msdn.microsoft.com/en-us/library/windows/desktop/bb204633(v=vs.85).aspx並沒有說明CaptureStackBackTrace是否是單線程的。
非常感謝您的快速回答。
您可能表示線程安全,而不是單線程。您真的不在乎CaptureStackBackTrace是否使用多個線程來完成其任務。你關心的是如果從多個線程調用是安全的。 – agbinfo
我會認爲''StackWalk64()'如果它正在執行調用線程的堆棧,它將是線程安全的。但是如果它正在走另一個線程的堆棧,那麼它需要同步纔有意義。 –