zoukankan      html  css  js  c++  java
  • 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()】,我们真正需要做的事。

  • 相关阅读:
    Net设计模式实例之简单工厂模式(Simple Factory Pattern)
    Net设计模式实例系列文章总结
    2019年工作总结
    在Asp.Net Core中集成Kafka(中)
    如何将生产环境的服务Docker镜像拉取到本地进行调试
    记一次EFCore类型转换错误及解决方案
    Asp.Net Core中创建多DbContext并迁移到数据库
    ABP中的AutoMapper
    EFCore中的导航属性
    Asp.Net Core 调用第三方Open API查询物流数据
  • 原文地址:https://www.cnblogs.com/qq1206583608/p/5165468.html
Copyright © 2011-2022 走看看