C#线程、委托

 public void RunCallRemind()
        {
            axJDComponent1 = new AxJDCompPort.AxJDComponent();
            axJDComponent1.SetupPorts();
            axJDComponent1.Open();
            callRemind线程 = new Thread(thread);//2、实列化线程,指定线程启动时传递给线程的委托(thread


            callRemind线程.Start();//3、启动线程
        }
        // 定义委托使用关键字 delegate
        public delegate void CallReamind委托();//4、定义委托

        Thread callRemind线程;//1、建立线程
        void thread(object o)//4、创建一个委托方法,在里面声明委托
        {
            while (true)//线程多少秒刷新一次
            {
                //声明委托
                CallReamind委托 callremind委托 = new CallReamind委托(RunCallReamind);//5声明委托,委托

要做的事(RunCallReamind)
                callremind委托();//6、运行委托
                Thread.Sleep(100);//线程挂起多久一分钟更新一次
            }
        }
        void RunCallReamind()//7、委托做的事件(干这么多步,这里才是真正的事)实际要做的在这里
        {
            axJDComponent1.OnKeyPress += new AxJDCompPort.IJDComponentEvents_OnKeyPressEventHandler

(axJDComponent1_OnKeyPress);
            axJDComponent1.OnRead += new AxJDCompPort.IJDComponentEvents_OnReadEventHandler

(axJDComponent1_OnRead);
        }

//总结:要用线程干一件事,可分为三步。1、是线程(定义【Thread callRemind线程】、实例化【callRemind线程 =

new Thread(thread);】、启动【callRemind线程.Start();】、结束【】);2、实例化线程时线程执行的对象【void

thread(object o)】,该对象里有(定义委托【public delegate void CallReamind委托()】、声明委托

【CallReamind委托 callremind委托 = new CallReamind委托(RunCallReamind);】、运行委托【callremind委托();

】);3、声明委托时,委托要做的事 【void RunCallReamind()】,我们真正需要做的事。

原文地址:https://www.cnblogs.com/qq1206583608/p/5165468.html