现在的位置: 首页 > 综合 > 正文

C# multithread,threadpool,ParameterizedThreadStart,传递参数给线程以及回调

2011年02月25日 ⁄ 综合 ⁄ 共 1368字 ⁄ 字号 评论关闭

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("start testing multisthread....");
            Thread th = new Thread(new ThreadStart(new passobject("xiangxiang", 27).threadmethod));
            th.Start();
                   th.Join();
            Console.WriteLine("thread end....");
            Console.WriteLine("main thread end....");
     //       Console.ReadLine();

            Console.WriteLine("start testing thread pool multisthread....");
            WaitCallback wc = new WaitCallback(new passobject("xiang", 26).threadpoolmethod);
            ThreadPool.QueueUserWorkItem(wc,new passobject("xiangxiang",0));
            Console.ReadLine();
        }
    }
    class passobject
    {
        public string name;
        public int age;
        public passobject(string name,int age)
        {
            this.name = name;
            this.age = age;
        }
        public void threadpoolmethod(object o)
        {
            Thread.Sleep(3000);
            Console.WriteLine("this name is "+name+",and age is "+age+"");
            Console.WriteLine("that name is "+(o as passobject).name+",and age is "+(o as passobject).age);
        }
        public void threadmethod()
        {
            Thread.Sleep(3000);
            Console.WriteLine("this name is " + name + ",and age is " + age + "");
        }
    }
   
}

抱歉!评论已关闭.