C ランタイム エラー R6016
not enough space for thread data
Note
アプリの実行中にこのエラー メッセージが表示された場合は、内部メモリに問題があるため、アプリがシャットダウンされています。 このエラーには多くの理由が考えられますが、多くの場合は、メモリが著しく不足している、アプリにバグがある、またはアプリで使用されるアドインや拡張機能にバグがあることが原因で発生します。
このエラーを解決するには、次の手順を試してみます。
- 実行中の他のアプリケーションを閉じるか、コンピューターを再起動してメモリを解放します。
- [コントロール パネル] の [アプリと機能] または [プログラムと機能] ページを使用して、アプリを修復または再インストールします。
- [コントロール パネル] の [アプリと機能] または [プログラムと機能] ページを使用して、アプリで使用されているアドインや拡張機能を削除、修復、または再インストールします。
- [コントロール パネル] の [Windows Update] でソフトウェア更新プログラムを確認します。
- アプリの更新バージョンを確認します。 問題が解決しない場合は、アプリ ベンダーにお問い合わせください。
プログラマ向け情報
このエラーは、_beginthread または _beginthreadex
呼び出しを完了するのに十分なメモリがオペレーティング システムからプログラムに提供されなかった、またはスレッド ローカル ストレージが、_beginthread
または _beginthreadex
によって初期化されていなかったことが原因で発生します。
新規スレッドの開始時、ライブラリは、そのスレッド用に新しい内部データベースを生成する必要があります。 オペレーティング システムのメモリを使用してデータベースを展開できないと、スレッドは開始されず、スレッドの呼び出しプロセスは停止します。 これは、プロセスによって作成されたスレッドが多すぎる場合、またはスレッド ローカル ストレージが不足している場合に発生する可能性があります。
C ランタイム ライブラリ (CRT) が呼び出される実行可能ファイルでは、スレッド作成に Windows API CreateThread
ではなく _beginthreadex
を使用することをお勧めします。 _beginthreadex
は、スレッド ローカル ストレージで多くの CRT 関数によって使用される内部静的ストレージを初期化します。 CreateThread
を使用してスレッドを作成すると、初期化された静的内部ストレージを必要とする CRT 関数が呼び出されたときに、R6016 でプロセスが終了する場合があります。