在多线程应用程序中,有没有办法确保临界区只被初始化一次,除了将代码放在DLL main()中?
我建议用一个类来包装CRITICAL_SECTION,该类将在其构造函数和析构函数中处理临界区对象的初始化和未初始化.这样,在大多数情况下,您将是线程安全的(您必须确保在构造函数完成之前没有人访问该对象,但这相对容易).
您可以使用几种常见的CRITICAL_SECTION包装器. MFC的CCriticalSection是明显的选择,但您也可以创建自己的选择.
您可以使用几种常见的CRITICAL_SECTION包装器. MFC的CCriticalSection是明显的选择,但您也可以创建自己的选择.