Передача функций-членов в std :: thread

Возможный дубликат:
Начать stream с помощью функции-члена

Недавно я играл с новой библиотекой std :: thread в c ++ 11, и я столкнулся с проблемой. Когда я пытаюсь передать функцию classов в новый stream, это дает мне ошибку (у меня нет точного текста ошибки прямо сейчас, так как у меня нет дома) У меня был class вроде этого

class A { void FunctA(); void FunctB(); void run() { std::thread t(FunctA); std::thread r(FunctB); } } 

Что я делаю не так?

 class A { void FunctA(); void FunctB(); void run() { std::thread t(&A::FunctA, this); std::thread r(&A::FunctB, this); } }; 

Указатели на функции-члены отличаются от указателей на функции, а синтаксис их вызова различен и требует экземпляра classа. Вы можете просто передать указатель на экземпляр в качестве второго аргумента конструктора std::thread .

 class A { public: A( FunctA &fa ) : fa(fa) {} struct FunctA { virtual void operator()() = 0; } struct FunctB { void operator()() { // thread B } } FunctA &fa; FunctB fb; void run() { std::thread t(fa); std::thread r(fb); } } 

повысить документацию

Я думаю, проблема в том, что вы не можете получить указатель на функцию-член таким же образом, как функции. Здесь вы найдете дополнительную информацию об этом.

Кроме того, было бы гораздо легче ответить, если вы предоставили текст compiler errors.

  • Захват Node JS альтернатива многопоточности
  • Использование ThreadPool.QueueUserWorkItem в ASP.NET в сценарии с высоким трафиком
  • java.lang.IllegalStateException: не для streamа приложений FX; currentThread = Thread-4
  • В чем преимущества использования ExecutorService?
  • Как я могу реализовать счетчик ABA с C ++ 11 CAS?
  • Как вы запрашиваете pthread, чтобы узнать, все ли работает?
  • В чем разница между ManualResetEvent и AutoResetEvent в .NET?
  • Контекст данных EF - Async / Await & Multithreading
  • Фоновая тема для приложения сервлетов Tomcat
  • std :: thread не является членом пространства имен std, используя Eclipse Kepler MinGW
  • Как получить указатель интерфейса JNI (JNIEnv *) для асинхронных вызовов
  • Давайте будем гением компьютера.