GUI 프로그래밍 기초
글쓴이: gurumong / 작성시간: 토, 2011/02/12 - 11:01오후
GUI 프로그래밍을 공부하는 초보입니다
GUI 인터페이스를 가지는 프로그램은
윈도우폼과 거기에 배치할 콘트롤등을 코드로 생성하고
그것들을 화면에 그리고 발생하는 이벤트등을 감시하는
무한루프를 도는 함수를 호출하는식이잖아요
그렇다면 GUI인터페이스와 상관없이 뒤에서 계속 돌아가야하는 작업에 대해서는
어떻게 GUI를 담당하는 무한루프를 가지는 함수를 떠나서 개별적으로 돌아갈수가 있는것인가요? 타이머 콘트롤 등을 이용해서 아주 작은 단위로 쪼개서 조금씩 실행해야하는것인가요?;
예를 들면 바이러스검사를 실시하면 뒤로는 계속 바이러스 검사를 수행하고
검사 결과를 실시간으로 화면상에 출력하면서
일시정지 버튼을 누르면 일시중지가 되잖아요
Forums:
GUI라고 해서 for 문으로 루프되는 부분이 실제로
GUI라고 해서 for 문으로 루프되는 부분이 실제로 보이지는 않습니다.
일반 텍스트 프로그램하고 비슷해요. 그냥 메인에다가 콘트롤 그려주면 알아서 돌려줍니다.
타이머나 프로그레스바같은 건 언어마다 쓰레드 기능이 있어서 그걸로 합니다.
쓰레드는 함수가 여러개 동시에 돌아가게 만듭니다.
그리고 콜백함수라고 해서 함수를 만들면 운영체제가 그 함수를 자동으로 실행해주는 게 있어요.
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
아이디의 아이디어 무한도전
http://blog.aaidee.com
귀태닷컴
http://www.gwitae.com
예를 든다면.
1. (A쓰레드 생성) 바이러스 검사 실행
2. (A쓰레드) 검색한 바이러스 GUI에 업데이트
3. (A쓰레드) 일시 정지.시 A쓰레드 정지.
4. (B쓰레드 생성) 백신치료시 GUI에 업데이트된 바이러스 치료.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
스레드를 이용해서 동시에 여러가지 작업을 수행 할
스레드를 이용해서 동시에 여러가지 작업을 수행 할 (혹은 하는 것처럼) 수 있습니다.
메인 스레드는 GUI코드를, 새로 만든 스레드 하나가 파일검색등의 작업을 하게 만드는거죠.
혹은 얘기하신 것 처럼 타이머로 쪼개서 수행할 수도 있어요.
Win32라면 getmessage대신 peekmesssage를 사용해서, 메시지를 non-block함수로 처리하고 루프안에서 그런 일들을 처리할 수도 있겠죠.
검색 키워드는,
비동기 - asynchronous
스레드 - thread
이벤트 방식 - event driven
non block
GUI multiprocessing
등이 되겠습니다.
언제나 삽질 - http://tisphie.net/typo/
프로그래밍 언어 개발 - http://langdev.net
댓글 달기