2

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

这 2 个回调函数在超过 1 个线程中被重复调用。

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

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

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

我对多线程不是很有经验,所以我真的不知道该怎么做。

有什么建议么?

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

C++ DLL 崩溃(我认为读/写崩溃相关)

4

2 回答 2

1

阅读Thread Synchronization for Beginners

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

于 2012-07-25T13:10:29.183 回答
0

您必须为此变量创建一个关键部分。在 Windows 中,您可以使用Mutex Objects来完成。

于 2012-07-18T17:22:09.287 回答