C 运行时错误 R6016
线程数据所需的空间不足
注意
如果运行应用时遇到此错误消息,则会关闭该应用,因为它存在内部内存问题。 出现此错误的原因可能很多,但通常是由内存过低、应用中的 bug 或应用使用的加载项或扩展中的 bug 引起的。
可以尝试以下步骤来修复此错误:
- 关闭其他正在运行的应用程序或重新启动计算机以释放内存。
- 使用控制面板中的“应用和功能”或“程序和功能”页修复或重新安装该应用。
- 使用控制面板中的“应用和功能”或“程序和功能”页移除、修复或重新安装应用使用的加载项或扩展。
- 检查“控制面板”中的“Windows”更新以获取软件更新。
- 检查该应用的更新版本。 如果问题仍然存在,请联系应用供应商。
面向程序员的信息
发生此错误的原因在于,该程序未从操作系统接收到足够的内存来完成 _beginthread 或 _beginthreadex
调用,或者 _beginthread
或 _beginthreadex
尚未初始化线程本地存储。
新线程启动时,库必须为该线程创建一个内部数据库。 如果数据库无法通过使用操作系统提供的内存进行扩展,则该线程不会开始并且此调用进程会停止。 当此进程创建了过多线程或线程本地存储用完时,就会发生这种情况。
建议调用 C 运行时库 (CRT) 的可执行文件应使用 _beginthreadex
而不是 Windows API CreateThread
来创建线程。 _beginthreadex
将在线程本地存储中初始化很多 CRT 函数使用的内部静态存储。 如果使用 CreateThread
创建线程,则在调用需要初始化的内部静态存储的 CRT 函数时,CRT 可能会使用 R6016 终止此进程。