我的静态链接 Visual C++ 2012 程序偶尔会生成 CRTL 错误:“R6016 - 线程数据空间不足”。
Microsoft 的最小文档说此错误消息是在生成新线程时生成的,但没有为其分配足够的内存。
但是,我的代码仅在几个明确定义的情况下显式生成新线程,而这两种情况均未在此处发生(尽管 Microsoft 库肯定会在内部生成线程)。当程序刚刚在后台运行时,一位用户报告了这个问题。
不确定它是否相关,但我没有覆盖默认的 1MB 保留堆栈大小或堆大小,而且我的程序使用的总内存通常很小(在具有 12GB 实际 RAM 的系统上为 3MB-10MB,其中一半以上未分配)。
这种情况很少发生(所以我无法追踪),而且不止一台机器上都报告过这种情况。我只在 Windows 8.1 上听说过这个,但我不会读太多。
某处是否有一些编译器设置可能会影响此错误?还是编程错误?
最佳答案
原来这是调用CreateThread而不是_beginthread引起的。备注部分中的 Microsoft 文档指出 CreateThread causes conflicts when using the CRT library ,事实上,一旦我们进行了更改,我们就再也没有看到该错误。
关于windows - 解决错误 R6016 - 线程数据空间不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21127460/