'Compact Framework'에 해당되는 글 1건

  1. 2009.11.02 About Thread (C#) - .net compact framework

Application.DoEvent   .. 매니지드 API를 이용한 DoEvents를 모두 처리하는 메소드이다. DoEvents가 호출됐을때, 주 스레드큐에 쌓여 있는 메시지를 모두 처리하는 메소드이다.
DoEvents는 단순한 환경에서는 매우 매력적이다. 특히 코드를 복잡하게하는 스레드의 사용을 피하려는 개발자라면 말이다.
But 매우 위험하다 DoEvents는 메시지큐에 있는 모든 메시지를 처리한 후에 그 다음 코드를 수행하기 때문이다.

윈도우는 매니지드건 네이티브건 컨트롤을 생성한 스레드만이 컨트롤 속성을 변경할 수 있다. (즉, 핸들을 이용한 직접적인 API 호출가능) 다시 말해 윈도우 객체는 스레드 친화성을 가지고있다. 컨트롤의 속성을 읽고 쓰거나 메소드를 호출 하는것도 모두 생성한 스레드 안에서 수행해야 하는것이다. 실질적으로 주 스레드에서만 컨트롤을 터치할 수 있고 작업자 스레드에서는 그렇지 못하다. 그럼 작업자 Invoke(또는 BeginInvoke) 메소드를 호출해서 유저인터페이스를 업데이트 할 수 있다.

Invoke
Invoke 메소드는 전달 받은 대리 함수를 큐에 저장한 후 애플리케이션 메시지큐에 사용자 윈도우 메시지를 보낸다. 메시지가 처리되면서 수행되는 메소드는 내부 함수를 호출 하면서 컨트롤에 이를 알려준다. Thread Method(물론 주 스레드에서 실행되는)의 컨트롤은 내부큐에 존재하는 대리함수 들을 실행한다.


.net framework 에서는 BackgroundWorker 라는 편리한 것을 제공
위는 .net compact framework에 기초한것임

'예전것 > .NET Compact Framework' 카테고리의 다른 글

C# : How to Loop PlayList in media player  (0) 2010.01.29
C#에서의 using  (0) 2009.11.06
C# 전역변수 사용법 (폼 간에)  (0) 2009.11.04