我有一个列表,其中包含要处理的数据。我有2个线程,
UI 线程:更新/添加列表项,
线程 1:一旦将项目添加到列表中,它就会将项目一个接一个地发送到另一个线程 2,
线程2:它是否工作并相应地更新项目,一旦完成工作,它会检查列表,如果相应的项目仍然存在于列表中,如果存在则处理数据。
在关闭窗口时从 UI 线程中,我正在从地图中删除从 UI 添加的项目。这样线程 2 就不会继续从列表中删除的项目。
从 UI destruct 或者,我正在删除列表中添加的项目实例。
问题是,线程 2 已经在处理一个项目,同时窗口关闭并且析构函数删除了线程 2 正在处理的项目。
所以线程2对数据的处理崩溃了。
我已经在 MFC 中做到了这一点。如何同步这 2 个线程(UI 删除和线程 2)。我知道 MFC 中有不同的线程同步方法。哪种方法最适合这种情况?