0

この例のように ObjParser::loadData() が呼び出されるたびに、新しいスレッドを開始しようとしています。

だから私はこのコードを書きました。

#include <thread>   
void ObjParser::loadData()
{
   thread loadingThread(_loadData);
   loadingThread.detach();
}

void ObjParser::_loadData()
{
   //some code
}

しかし、コンパイルしようとすると、次のエラーが発生します。

error C3867: 'ObjParser::_loadData': function call missing argument list; use '&ObjParser::_loadData' to create a pointer to member

そこで、メンバー関数へのポインターを作成しました。

#include <thread>   
void ObjParser::loadData()
{
   thread loadingThread(&ObjParser::_loadData);
   loadingThread.detach();
}

void ObjParser::_loadData()
{
   //some code
}

しかし、コンパイラは文句を言います:

error C2064: term does not evaluate to a function taking 0 arguments 

この問題の原因がわかりません。この問題を解決する方法のヒントを教えてください。

4

2 に答える 2