|
님께서 하시고자 하는 방법은
API CreateThread 함수를 이용해서 하는 방법입니다.
직접만든 Proc를 TThread 상속받은 클래스에 연결할수 없습니다.
-----------------------------------------------------------
TThread를 이용해서 쓰레드를 쓰는 방법은?
void __fastcall Execute() ==> 이함수가 Thread 메인 함수가 됩니다.
A_ListenThreadProc ==> 이 함수의 내용을 Execute() 함수 안으로 옮기시면 됩니다.
----------------------------------------------------------------
억지로 연결할수도 있겠죠
void __fastcall TMyThread::Execute()
{
ListenThreadProc() ;
}
//이렇게 Execute() 함수안에 넣어주면 되니까....
---------------------------------------------------------------
TThread 상속받는 class만드는 방법은 ?
직접 코딩해도 되구
File -> New -> Ohters -> Thread Object 선택하시면 됩니다.
그럼...
신우철 님이 쓰신 글 :
: 이현진 님이 쓰신 글 :
: : 신우철 님이 쓰신 글 :
: : : C++Builer 초보입니다 Thread에 질문이 있어서 글 올립니다
: : :
: : :
: : : class A
: : : {
: : : TThread* m_pListenThread;
: : : void Init()
: : : void __fastcall A_ListenThreadProc(void);
: : :
: : : }
: :
: :
: : class A를 TThread를 상속받은 후 TThread::Execute()를 정의해서 사용하시면 됩니다.
:
:
: 예 상속받아서 쓰는건 알겠는데 다른 CLASS 즉 TestThread 클래스를 상속받고
: TestThread ::Execute()함수에 제가 정의한 A_ListenThreadProc 포인터를 넘겨서
: A 클래스에서 작업함수만 정의해서 쓸수 있냐 하는겁니다
: IOCP를 작업중인데 쓰레드를 여러개 생성해야 하거든요
: 그럴려면 IOCP클래스에서 여러개의 쓰레드 클래스를 정의하고 IOCP클래스에서는 ThreadPoc만
: 넘겨서 사용할수 있어야 자유롭게 쓸텐데요 함수포인터를 Execute() 에 넘길 방법이 없는지요
: 예를 들어 TestThread->Execute = A_ListenThreadProc
: 이렇게요 답변 감사합니다만 이것도 가능한지 알려주세요
: 이것또한 에러가 나네요
: 멤버함수는 다른클래스에 함수포인터를 넘길수 없다는 에러가 나오는데 VC++에서는 가능한걸로 알고있거든요
:
: 꼭좀 답변 부탁드립니다
|