article search result of 'BeginInvoke' : 1

  1. 2010.12.04 [BeginInvoke] Delegate 로 스레드에 매개변수 전달하기 (49)

[BeginInvoke] Delegate 로 스레드에 매개변수 전달하기



보통 스레드를

Thread t = new Thread( new ThreadStrat(Method) );

의 형태로 사용 하는데 Method 에 매개변수를 전달하지 못한다는 제약이 있다.

그래서  delegate 의 BeginInvoke 메소드를 통해 스레드를 작성해보자.




Created with colorer-take5 library. Type 'csharp'

/*
 * SharpDevelop으로 작성��었습니다.
 * 사용자: jjongun
 * 날짜: 2010-02-04
 * 시간: ��후 4:48
 * 
 */
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;
using System.Net;
using System.Diagnostics;

namespace testSockerServer
{
    /// <summary>
    /// Description of MainForm.
    /// </summary>
    public partial class MainForm : Form
    {
        //스레드로 만들 델리게이트 선언
        delegate void runDele(string str);
        public MainForm()
        {    
            InitializeComponent();
            
            Trace.WriteLine("��제 메인 스레드 id: " +Thread.CurrentThread.ManagedThreadId);
            
            //델리게이트 생성
            runDele d = new MainForm.runDele(this.initServer);
            //BeginInvoke 로 매개변�� 전달
            d.BeginInvoke("string value",null,null);
        }
        
        private void initServer(string str)
        {
            Trace.WriteLine("델리게이트로 만든 스레드 id: " +Thread.CurrentThread.ManagedThreadId +"\n"
                           +str);
        }
    }
}

/**
 *   출력 : 
 * 
 *  ��제 메인 스레드 id: 1
 *    델리게이트로 만든 스레드 id: 3
 *     string value
 *  
 * */
Yamecoder 야매코더_
C# 2010.12.04 00:11
Powerd by Tistory, designed by criuce
rss