|
안녕하세요 한동훈입니다.
Synchronize는 말 그대로 동기화, 동조화라는 의미입니다.
TThread의 가장 강력하다고 (제 생각에는) 생각되는것 중에 하난인데요
일반적으로 작업 즉 루프라든지, 긴작업 같은것은 Execute()에 넣어주고, 화면과 동기화
시켜주기 위해서 Synchronize를 사용하게 됩니다.
즉 다시 설명하자면, Synchronize 는 사용자 인터페이스 쓰레드의 쓰레드 컨텍스트로 전환하는거죠
그런담에 그 인자로 전달된 펑션을 호출한 다음, 쓰레드 자신의 컨텍스트로 돌아갑니다.
그러므로 UI는 Synchronize로 전달된 함수에 의해 갱신될수 있는거죠
한마디로 용도를 잘 맞추어 써야 한다는거죠..히히^^;;
그러니까 굳이 모든 내용을 다 Synchronize로 넣을 필요 없고, 화면 갱신 부분만 넣어주게 되면
좋은 성능을 좋게 하겠죠..
그럼 수고하세요
궁금해요.. 님이 쓰신 글 :
: 안녕하세요!
: 쓰레드에 질문이 있어서 올립니다.
:
: 쓰레드에 코드를 그냥 쳐 넣으면, 폼을 움직일 때 어려움이 없습니다. 그래서 쓰레드가 잘 실행되는 것으로 보입니다.
: 그런데 이 코드를 void __fastcall My_Function 식으로 코딩한 후 이걸 쓰레드안에서 Synchronize(My_Function) 으로 호출해 쓰면, 폼을 움직이는게 힘들어요. 아마 쓰레드가 잘 실행되지 않는것이 아닌가요?
:
: 왜 Synchronize를 쓰면 느려질까요?
:
: 함수로 선언하고 이걸 쓰레드안에서 Synchronize를 안 쓰고 호출하면 쓸 수있나요?
: 답변 부탁드립니다..
|