jjzjj

CSHolder

全部标签

c++ - 如何捕获临界区抛出的异常?

我正在使用C++开发win32多线程。设想:我有一个由多个线程使用的函数。此函数用作关键部分(或任何可以锁定资源的构造)。在临界区抛出异常。此时我需要注意解锁异常捕获block中的资源。有没有其他方法可以做到这一点?我的意思是,假设我不想记住释放catchblock中的锁,是否有任何通用方法来处理此问题以避免这种容易出错的情况? 最佳答案 这个想法是将获取和释放临界区的行为封装在一个对象中,这样构造对象就获取CS,销毁对象就释放它。structCSHolder{explicitCSHolder(CRITICAL_SECTION&cs