0

我似乎很难在多线程程序中创建一个动态块管理系统。我有一个类,VDimensia,它是一个充满体素块的维度,多线程程序的一个线程正忙于渲染和更新体素。我的问题是另一个线程旨在销毁太远的体素块,并且当它删除一个块而另一个线程正在创建和初始化该块时会导致问题。我的代码现在有点混乱,我已经进行了所有访问检查,但我似乎无法找到一种方法来防止程序弹出某种访问冲突。有没有办法使用 try catch 忽略违规并继续?我已经尝试使用__try __except,它决定锁定线程,我试图设置编译器选项/EHa,但实际上什么也没做。我正在使用 Visual Studio 2012 C++。直到今天我仍在学习 C++,所以任何帮助表示赞赏。

4

1 回答 1

0

您可能想研究一个引用计数解决方案,例如 std::shared_ptr/std::weak_ptr 并让更新体素的线程执行它的操作;当他们完成并取消体素时,体素可以消失。

http://en.cppreference.com/w/cpp/memory/shared_ptr

于 2013-05-27T04:28:02.303 回答