귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
媛뺤쥖, 똻, 젙蹂 媛뺤쥖, 똻, 젙蹂 입니다.
글내용 - 媛뺤쥖, 똻, 젙蹂
 씡紐낇븿닔+벐젅뱶瑜 솢슜븳 媛꾨떒븳 벐젅뱶 궗슜 諛⑸쾿
겢씪슦
(議곕쁽)
2018-03-03 삤썑 10:08:15
카테고리: 똻
1637회 조회



등록된 파일이 없습니다.
湲곗〈뿉뒗 TThread瑜 긽냽븯뿬 援ы쁽븯湲곗뿉 珥덈낫떆젅뿏 젒洹쇰룄 뼱졄怨 옞源 벐젅뱶媛 븘슂븳 떆젏뿉꽌쓽 솢슜룄 踰덇굅濡쒖썱뒿땲떎.
떎뻾엳 뜽뙆씠 2010踰꾩쟾遺꽣 씡紐낇븿닔媛 젣怨듬릺뿀뒗뜲 뜒遺꾩뿉 벐젅뱶瑜 븘二 넀돺寃 궗슜븷 닔 엳뒿땲떎.
떎留, 뿬湲곗꽌뒗 옄꽭엳 꽕紐낇븷 닚 뾾吏留 븞쟾븳 벐젅뱶 궗슜쓣 쐞빐 겕湲 2媛吏瑜 吏耳쒖빞 빀땲떎.

1) 벐젅뱶쓽 begin ~ end 釉붾줉 궗씠뿉꽌 UI瑜 議곗옉(蹂寃, 닔젙, 궘젣벑)븷븣뒗 Syncronize瑜 씠슜븳떎.
2) 떎瑜 벐젅뱶 룞떆뿉 媛숈 옄썝(蹂닔, 겢옒뒪벑)쓣 怨듭쑀(룞떆뿉 씫嫄곕굹 벐뒗 뻾쐞, 룷씤꽣瑜 李몄“븯뒗 뻾쐞)븯吏 븡뒗떎.

媛꾨떒븳 삁젣엯땲떎.

1. 100ms 씠癒 留뚮뱾湲

뜽뙆씠 湲곕낯 씠癒몃뒗 쐢룄슦 씠踰ㅽ듃 諛⑹떇쑝濡 援ы쁽릺誘濡 떎쓬怨 媛숈 移섎챸쟻씤 떒젏씠 엳뒿땲떎.

1) 젙솗룄媛 뼥뼱吏怨(쐢룄슦 而⑤뵒뀡뿉 뵲씪 100~500ms 씠븯 옉룞 遺덇퇋移)
2) 硫붿씤UI(硫붿씤벐젅뱶)媛 硫덉텛吏 븡怨 옉뾽 遺덇뒫

洹몃옒꽌 븘닔濡 벐젅뱶瑜 씠슜븳 씠癒몃 궗슜븯寃 맗땲떎.
씡紐낇븿닔瑜 궗슜븯硫 븘옒 媛숈씠 넀돺寃 留뚮뱾 닔 엳뒿땲떎.

procedure TForm1.FormCreate(Sender: TObject);
begin
    TThread.CreateAnonymousThread(procedure
    begin
      while Applicaton.Terminated do
      begin
        Sleep(100);
        DoTimerTick; // DoTimerTick뿉꽌 냼슂릺뒗 떆媛꾩쓣 紐⑤몢 湲곕떎由щ濡 while臾몄쓣 넻빐 以묐났 떎뻾릺吏뒗 븡뒿땲떎.
      end;
    end).Start;
end;

procedure TForm1.DoTimerTick1;
var
  i, k: integer;
begin
  // 뿬湲곗꽌遺꽣 諛깃렇씪슫뱶 옉뾽쓣 븯硫 맗땲떎.
  // 硫붿씤 UI瑜 硫덉텛寃 븯吏 븡뒿땲떎.

  // 씠윴 for 援щЦ룄 븘二 鍮좊Ⅴ寃 룞옉븯硫 硫붿씤UI룄 젙긽쟻쑝濡 옉룞빀땲떎.
  for i ;= 0 to 9999999999 do
  begin
    Inc(k);
  end;

  // sleep룄 硫붿씤UI媛 젙긽쟻쑝濡 옉룞빀땲떎.
  sleep(1000);

  // 硫붿씤 UI瑜 議곗옉븯젮硫 Synchronize 泥섎━빀땲떎.
  TThread.Synchronize (TThread.CurrentThread, procedure ()
  begin
    Label1.Caption := IntToStr(k);
  end);
  
  ShowLogMsg('씠癒 옉룞 以...');
end;

procedure TForm1.ShowLogMsg(AMsg: String);
begin
  // 理쒖큹 샇異 떆젏씠 벐젅뱶씪硫 븘옒 媛숈씠 Synchronize 泥섎━
  TThread.Synchronize (TThread.CurrentThread, procedure ()
  begin  
    Memo1.Lines.Add(AMsg);
  end);
end;


2. 踰꾪듉 겢由 떆 湲곗떆媛 援ы쁽

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := '뙆씪 蹂듭궗 떆옉';

  TThread.CreateAnonymousThread(procedure
  begin
    FileCopy('c:\org.avi', 'd:\dst.avi'); // 슜웾 100mb avi 뙆씪 蹂듭궗 

    TThread.Synchronize (TThread.CurrentThread, procedure ()
    begin  
      Label1.Caption := '뙆씪 蹂듭궗 醫낅즺';
    end);
  end).Start;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  TThread.CreateAnonymousThread(procedure
  begin
    TThread.Synchronize (TThread.CurrentThread, procedure ()
    begin  
      Edit1.ReadOnly := true;
      Edit1.Caption := '2珥 썑 엯젰 媛뒫';
    end);
    
    Sleep(2000);
 
    TThread.Synchronize (TThread.CurrentThread, procedure ()
    begin  
      Edit1.ReadOnly := false;
      Edit1.Caption := '씠젣遺꽣 엯젰 媛뒫';
    end);    
  end).Start;
end;