|
어떤 용도인지는 모르겠으나
일반적으로 두개의 작업을 동시에 하는것을 멀티쓰레드 프로그래밍이라고합니다.
쓰레드를 사용하셔야 합니다.
C++빌더에서는 쓰레드API를 구현한 TThread 클래스를 지원하고 있습니다.
또한 두가지 작업을 확실히 번갈아가며 하기 위해서는
쓰레드 동기화 객체를 사용하셔야 합니다. TCriticalSection 정도 사용하시면 되겠습니다.
자세한 내용은 도움말이나 다른 샘플 참고하시기 바랍니다.
근처에 굴러다니는 API 관련 두꺼운 책이 있다면
멀티쓰레드 관련 섹션을 공부하시는 것도 좋을 듯 합니다.
Application->ProcessMessages(); 를 이용해서 구현하려 하는것은
정식 방법이 아닌 약간의 뽀록이라 할 수 있으며
제대로 사용하지 않을 경우
님이 경험한 것처럼 의도하지 않은 문제가 발생할 가능성이 높습니다.
저같은 경우에는 개발 작업에 아예 이런 방식을 사용하지 않습니다.
왕초보 님이 쓰신 글 :
: 안녕하세요.
:
: 다름이 아니로 동시에 두 함수를 실행하고 싶은데 그게 잘 안되서 질문 올립니다.
:
: 물론 아에 동시에 실행이 될 순 없다고 알고 있습니다.
:
: 한줄 한줄 함수를 건너 뛰면서 실행이 가능 한지요.
:
: 가령 제가 버튼 두개를 만들고 두 개의 버튼 OnClick 이벤트 안에
:
: for(int i=0;i<100000000;i++)
: {
: Application->ProcessMessages();
: }
:
: 라고 코딩 하였습니다.
:
: 버튼 1을 누르고 버튼 2를 바로 눌러보니
:
: 버튼 1은 for문을 실행하다 잠시 중단 하고 버튼 2의 for문을 다 돌고 나서야 나머지 버튼 1의 for문을 돌더군요.
:
: 전 사실 Application->ProcessMessages();를 이용하면 버튼의 for문이 번갈아 가면서 한번씩 실행되는 줄 알고 있었습니다.
:
: 근데 그게 안되서 하고자 하는게 안되네요.
:
: 고수님들 무슨 방법이 없을까요?
:
: 답변 부탁 드립니다.
|