многопоточность — использование конструктора c ++ std :: thread

При попытке использовать std :: threads я оказался с этой ошибкой.

error C2064: term does not evaluate to a function taking 1 arguments
File: functional
Line:1152

Закомментировав несколько строк, я обнаружил, что ошибка исходит от конструктора.

Я также использую irrlicht, поэтому переменная события.

Вот объявление потока:

t1=new thread((&EventReceiver::KeyInput3),event);

Заголовок функции:

int EventReceiver::KeyInput3(const SEvent& event)

Пробовал строить его по-разному, но никто не работал.
Что я должен сделать, чтобы избавиться от ошибки?

0

Решение

Я предполагаю, что KeyInput не является статической функцией-членом, поэтому вам нужно передать указатель на экземпляр EventReceiver первый:

EventReceiver* p = ...;
std::thread t(&EventReceiver::KeyInput3, p, event);
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]