2012-02-14 2 views
2

for 루프는 고정 된 횟수만큼 실행됩니다. 일반적으로 입력에 따라 100-300 범위로 실행됩니다. 이 루프를 반복 할 때마다 스레드를 만들고 싶은 함수가 호출됩니다.Qt에서 함수 스레딩

void myClass::processFile() 
{ 
    ... 

    for (int index = 0; index < 200; index++) 
    { 
     //Function or loop to thread 
     generateData(someMapOfMaps1[index], someMapOfMaps2[index]); 
    } 
} 
: 입력 파일로부터 그랩에게 데이터를 스레드 함수 여기

몇몇 상위 레벨 코드 ... 그리고, 일부 재료를 수행하는 출력 파일에 새로운 포맷으로 써

그런 다음 같은 클래스 내 generateData 내부 : 나는 QtConcurrent::run()QtConcurrent::mapped()와 함께 놀았하지만 훨씬 리터를하지 않았다

void myClass::generateData(QMap<float, foo*> mapA, QMap<float, foo*> mapB) 
{ 
    //read in data from a file 
    //process data 
    //write data to a different file 
} 

알았어. 나는 mapped()이 훌륭한 선택이었을 것이라고 믿지만, 내 기능은 단지 하나가 아니라 2 개의 맵을 필요로합니다. http://www.develer.com/promo/workshop/enhancing_with_multi_threading.pdf

감사 : 슬라이드 약 25

내가 자원으로이 사용하던

!

답변

0

op, 파일 읽기/쓰기, 'some stuff', 스레드의 많은 부분. 루프 당 하나의 함수 호출을 스레드로 처리하려고 시도하는 것은 글쎄, 너무 피할 수없는 스레드 간 통신입니다. filespecs 등을 myClass 객체로 묶어 스레드에 신호를 보내고 그냥 보내십시오.