我有一個小的C++ DLL有2個回調函數從另一個DLL檢索信息。多線程C++的dll全局變量導致崩潰
這兩個回調函數在多個線程中被重複調用。
它們都將信息添加到相同的全局Cstring變量。
我有另一個函數,使用此DLL的程序將調用讀取此變量。
這種情況很少見,但有時會發生崩潰,而且肯定是由於這個全局變量被兩個不同的函數同時讀取/寫入。
我對多線程不是很有經驗,所以我不知道該怎麼做。
有什麼建議嗎?
這裏是一個前面的問題,我發佈了關於同一個問題多一點信息..(和一些代碼)。 其中一位用戶協助我確認這是一個多線程問題,我們沒有得到比這更多的東西。
C++ DLL crash (reading/writing crash related I think)
'它們都將信息添加到相同的全局Cstring變量' - 爲什麼?你不能改變你的設計,這樣操作就會消失嗎? – 2012-07-18 17:24:37
廢話,對不起,我錯了。回調函數都將信息添加到不同的全局cstrings。 但是,由於這些函數在多個線程中運行,有時函數1同時被稱爲一堆。 另一個被調用的函數有時會讀取這兩個變量。 – user1088794 2012-07-18 18:10:45