2009-04-16 6 views
0

완료 포트를 사용하여 다른 스레드에서 정보를 얻으려면IOCP에 관한 질문

어떻게 프로그램 구조를 디자인 할 수 있습니까?

전역 함수를 사용하려면 어떻게 뮤텍스를 설정할 수 있습니까?

Main(){ 
    for i in range NumOfThreads{ 
    CreateIoCompletionPort() 
    CreatThread(ThreadFun) 
    } 
} 

ThreadFun(){ 

    While(1){ 
     GetQueuedCompletionStatus(); // wait for completion of an IO 
     Process What ever has completed(); 
     Start another file operation(); 
    } 

} 

답변

0

이 솔루션을 시도해보십시오

Main(){ 
    for i in range NumOfThreads{ 
    CreateIoCompletionPort() 
    CreateThread(ThreadFun) 
    } 

    for i in range NumOfCallerThreads 
    CreateThread(ThreadCaller) 
} 

ThreadCaller(){ 
    While(1){ 
    Start another file operation(); 
    } 
} 


ThreadFun(){ 
    While(1){ 
     GetQueuedCompletionStatus(); // wait for completion of an IO 
     Process What ever has completed(); 
    } 
} 

당신은 어떤 중요한 부분없이 그것을 할 수 있습니다! 필요한 것은 "다른 파일 작업 시작();" 해당 IOCP를 닫은 후에 호출되지 않습니다.

0

푸시 프레임 워크, http://www.pushframework.com은 들어오는 연결을 허용하는 다른 스레드를 추가한다는 점을 제외하면이 디자인도 사용합니다.