2012년 7월 21일 토요일

Framework 4.0 성능 개선 사항

ㆍ언어대상 : C#   ㆍ실행대상 : 윈도우어플   ㆍ작성자 : 김민석   ㆍ간단설명 : 병렬컴퓨팅과 기본 코딩 규칙  


1. 병렬 컴퓨팅의 활용

테스트 결과 엄청난 결과과 나온다. CPU개수만큼 시간이 줄어들기 때문에 이제부터는 병렬 컴퓨팅도 기본으로 해야 한다.

[CPU를 모두 사용 가능한 Thread]

Task.Factory.StartNew(() => {

    //Thread 함수

});


[UI 관련 필요 갱신시]

BeginInvoke((Action)delegate {

   //UI 관련 표시 작업

});


[대기형 Thread - 단 UI는 정지 되지 않는다]

Task tt = Task.Factory.StartNew(() =>
{
    //CPU Thread작업 (UI도 Free상태)

}).ContinueWith((t) =>
{
    //위의 작업이 끝나면 다음으로 실행되는 부분 (UI도 Free상태다!!!)

});

[대기, 리턴형 Thread - 단 UI는 정지 되지 않는다]

Task tt = Task.Factory.StartNew(() =>
{
  //CPU Thread작업 (UI도 Free상태)
  return "abc" ;
}).ContinueWith((t) =>
{
  //위의 작업이 끝나면 다음으로 실행되는 부분 (UI도 Free상태다!!!)
  
MessageBox.Show(t.result);

});


2. PAINT 관련 주의 사항

Paint와 Double버퍼가 세트가 되려면 다음처럼 되어야 합니다.

(1) Form에 Double버퍼넣고, Form_Paint에 그림을 그립니다 (OK)

(2) UserControl에 Dobuel 버퍼넣고, Control_Paint에 그림을 그립니다. 해당 UserControl을 Form에 여러개 올립니다. (OK)
*가장 성능이 잘나고 좋은 방법입니다.*

(3) Form에 Double버퍼넣고 Panel을 추가하여 해당 Panel_Paint에 그림을 그립니다 (X-> 더블 버퍼 반도 속도 안나옵니다.)
 => Panel을 Panel을 물려받고 Double 버퍼가 들어간 iasmcs.Win.Tool.UI.PanelD를 사용합니다.


 



해당 내용은 (주)데브존의 웹봇이 자동으로 저희 홈페이지와 API로 동기화한 내용입니다. 자세한 내용은 홈페이지 http://www.devzone.co.kr 또는 모바일 폰에서 http://devzone.co.kr을 접속 하여 확인해 보시기 비랍니다.
-  대표 전화 : 02) 2061 - 0753   - Fax : 02) 2061 - 0759   - Skype : devzone24
-  주소 : 서울특별시 양천구 목1동 923-14. 현대드림타워 1024호
-  기술 문의: 02) 2061-1259 김민석 기술이사


댓글 없음:

댓글 쓰기