C 运行时错误 R6016

线程数据所需的空间不足

注意

如果运行应用时遇到此错误消息,则会关闭该应用,因为它存在内部内存问题。 出现此错误的原因可能很多,但通常是由内存过低、应用中的 bug 或应用使用的加载项或扩展中的 bug 引起的。

可以尝试以下步骤来修复此错误:

  • 关闭其他正在运行的应用程序或重新启动计算机以释放内存。
  • 使用控制面板中的“应用和功能”或“程序和功能”页修复或重新安装该应用
  • 使用控制面板中的“应用和功能”或“程序和功能”页移除、修复或重新安装应用使用的加载项或扩展
  • 检查“控制面板”中的“Windows”更新以获取软件更新
  • 检查该应用的更新版本。 如果问题仍然存在,请联系应用供应商。

面向程序员的信息

发生此错误的原因在于,该程序未从操作系统接收到足够的内存来完成 _beginthread_beginthreadex 调用,或者 _beginthread_beginthreadex 尚未初始化线程本地存储。

新线程启动时,库必须为该线程创建一个内部数据库。 如果数据库无法通过使用操作系统提供的内存进行扩展,则该线程不会开始并且此调用进程会停止。 当此进程创建了过多线程或线程本地存储用完时,就会发生这种情况。

建议调用 C 运行时库 (CRT) 的可执行文件应使用 _beginthreadex 而不是 Windows API CreateThread 来创建线程。 _beginthreadex 将在线程本地存储中初始化很多 CRT 函数使用的内部静态存储。 如果使用 CreateThread 创建线程,则在调用需要初始化的内部静态存储的 CRT 函数时,CRT 可能会使用 R6016 终止此进程。