多线程C ++ DLL全局变量导致崩溃

时间:2012-07-18 17:10:14

标签: c++ multithreading

我有一个小的C ++ dll,它有2个回调函数,可以从另一个dll中检索信息。

这两个回调函数在多个线程中被重复调用。

它们都向同一个全局Cstring变量添加信息。

我有另一个函数,使用这个dll的程序会调用它来读取这个变量。

这种情况很少见,但有时我会崩溃,这肯定是由于这个全局变量同时由2个不同的函数读/写。

我对多线程不太熟悉,所以我真的不知道该怎么做。

有什么建议吗?

这是我之前发布的关于相同问题的问题,其中包含更多信息..(和一些代码)。 其中一位用户协助我确认这是一个多线程问题,而且我们没有比这更进一步。

C++ DLL crash (reading/writing crash related I think)

2 个答案:

答案 0 :(得分:1)

阅读Thread Synchronization for Beginners

如果您使用的是MFC,那么CMutex可能是合适的。

答案 1 :(得分:0)

您必须在此变量上创建关键部分。在Windows中,您可以使用Mutex Objects

来完成此操作