|
쓰레드를 쓰라고 하려면 코드를 정확히 판단하고 답변을 달아야 합니다.
모터 관련 코드가 다음과 비슷하다면 쓰레드를 사용하지 않아도 충분히 코딩이 가능합니다.
while(is_done() == false)
NULL;
쓰레드를 사용하면 코드가 위와 같던, 아니던 100% 해결은 될 겁니다.
그런데 특정 기술이나 패턴을 사용하지 않아도 될 곳에 사용하면 부작용이 더 큽니다.
멀티 쓰레드를 사용하려면 충분한 학습을 하고 해야 하는데
무작정 적용하고, 안되니까 질문 하고, 또 답글 달면 1차적으로 해결 하고 반복하게 됩니다.
그 증거로, 바로 위에 질문글이 올라왔지요 [thread내에서 다른 클래스 참조...]
질문자의 학습수준을 생각해서 답글을 달았으면 좋겠습니다.
견웅님도 제가 분명히 코드를 더 보여달라고 했는데,
마음이 급해서 그러셨겠지만 답변자의 의견을 고려하시는것이 장기적으로 도움이 됩니다.
phenix 님이 쓰신 글 :
: thread 사용하세요.
: 이게 정확한 답입니다.
:
: GUI에서 (정확히 GUI thread에서)
: motor의 motion done check하랴 (아마도 님의 while loop의 목적?)
: GUI LED 구동하랴 정신이 없을 겁니다.
: motion과 관련된 부분은 thread를 사용하여 GUI를 쉬게 해주세요.
:
: 견웅 님이 쓰신 글 :
: : 이번에 프로제트 하면서 모터를 구동하는 작업을 하게 됐습니다...
: : 모터보드에서 제공하는 라이브어리를 이용해서 작업을 합니다..
: : 그런데 문제가 생겨서 음.. 여기에 질문을 올립니다..
: :
: : 현재 모토를 구동하면서 문제가 타임으로 해서 함수를 실행합니다.
: : 모토구동하는 함수인데.. 또다른 타임만들어서 led를 움직이는 작업을 합니다....
: : 이러한 작업을 하는데 있어.. 문제가 생깁니다...
: : 둘다 따로 돌아야 하는데.. 현재 모터가 많은 작업을 하면 led가 느리게 움직입니다.
: : 항상 모터와 같이 움직이는 현상이 발생합니다..
: : 현재 둘다 동기화가 된것같은데.. 서로 불리할려고 해도 쉽게 안되더군용...
: : 음.. 현재 모터쪽에 while(0) 이러한 구문이 좀 있습니다.
: : 그래서 Application->ProcessMessges를 해서 해보왔지만 해결이 안되더군용...
: : 음... 서로 다르게 동작하게끔 하는 방법이 없나 해서..
: : 질문드립니다. 많은 의견좀 주세요.. ^^
|