몇 가지 조사를 해본 결과, boost :: thread 개체를 만들고 "this"를 사용하여 비 정적 클래스 함수로 시작하고 부스트를 시작할 수 있음을 알았습니다 :: bind 등등. 실제로 나에게 많은 의미가 없다. 그리고 찾을 수있는 모든 예제는 boost :: thread 객체가 시작된 함수와 동일한 클래스 내에서 시작되었다. 그러나 나는 다른 클래스의 스레드를 시작하여 "this"를 사용하여 두려워한다. "this"는 함수를 포함하는 클래스가 아니라 스레드를 만드는 클래스의 것입니다. 나는 틀렸어. 나는이 "이"녀석에 대해 더 많이 알 필요가있다.) 다음은 문제를 겪고있는 출처의 예입니다.부스트 스레드 및 비 정적 클래스 함수 사용하기
ANNGUI.h
class ANNGUI { private: boost::thread *GUIThread; Main *GUIMain; public: // Creates the entire GUI and all sub-parts. int CreateGUI(); }
ANNGUI.cpp는
int ANNGUI::CreateGUI() { GUIMain = new Main(); GUIThread = new boost::thread(GUIMain->MainThreadFunc); };
이 모든 소스가 아니라 내 문제가 여기 어딘가에서 생각, 나는 내가 처리해야 알 "이"어떻게 든,하지만 나는 잘 모르겠다. 나는 정적 함수를 사용할 수 있었지만, 실제로 변수를 정적으로 만들고 싶지는 않았다. 감사합니다. .
또한 부스트 라이브러리를 사용하기에 좋은 리소스가 있습니까? 그들의 웹 사이트 문서는 좋지만 내 머리 위로 보인다.
'new'는 절대적으로 필요합니까? 일반 로컬 변수로 스레드를 만들면 작동하지 않습니까? –
만약 내가 부스트 :: 스레드 * thr = 새 부스트 :: 스레드 (부스트 :: 바인딩 (& Foo :: some_function,이)); 두번?? –