pthreadがどのように動作するのかちょっと混乱しています。具体的には、voidポインタを引数として取る関数へのポインタをpthreadが受け取っていると確信しています。私はそのように関数を宣言しましたが、私はまだエラーが発生しています。私は取得していますエラーがあるPthreadと関数ポインタ
void eva::OSDAccessibility::_resumeWrapper(void* x)
{
logdbg("Starting Connection.");
_listener->resume();
logdbg("Connected.");
pthread_exit(NULL);
}
void eva::OSDAccessibility::resumeConnection()
{
long t;
_listener->setDelegate(_TD);
pthread_t threads[1];
pthread_create(&threads[0], NULL, &eva::OSDAccessibility::_resumeWrapper, (void *)t);
}
:
No matching function for call to pthread_create.
あなたは、必ずしもそれが可能だろうが(コードを修正する方法を教えする必要はありませんここで私はに苦しんでいたコードですもちろん)、私はこのエラーが起こっている理由とpthreadの私の理解が正しい場合にはより興味があります。ありがとう! :)
CまたはC++を使用していますか? C++を使用している場合は、[標準スレッドライブラリ](http://en.cppreference.com/w/cpp/header/thread)を使用することをお勧めします。 – NathanOliver
提案していただきありがとうございます!そして、私は何が起こっているのか理解するかもしれないと思う。クラス内のメンバ関数でpthreadを実際に使用することはできません。これを行う良い方法は、main()でクラスのインスタンスを作成し、そこからpthread_createを呼び出すことです。私は想像するでしょう... –