美文网首页
C# 多线程学习 2018-07-05

C# 多线程学习 2018-07-05

作者: Klart | 来源:发表于2018-07-05 14:39 被阅读35次

    C# 多线程

    • 使用背景:因为Webservice 调用公司邮件报警接口导致后续代码执行不了(提示网络超时),于是开一个线程
    • C#中,线程入口是通过ThreadStart代理(delegate)来提供的,相当于一个函数指针;指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart 所代表或者说指向的函数。
    • 使用多线程之前要先创建一个线程。和新建一个类一样,没什么区别
    //使用之前需要引用
    using System;
    using System.Threading;
    
    namespace ESOP
    {
        public class Tands
        {
    
            public static string  main(string  userid)
            {
                Sent Sentd = new Sent();
                Thread oThread = new Thread(new ParameterizedThreadStart(Sentd.SendEmail));
                oThread.Start(userid);
                return null;
            }
        }
    public class Sent
        {
            public void SendEmail(object userId)()
            {
              //方法,业务逻辑
             }
        }
    
    }
    
    我们如果定义不带参数的线程,可以用ThreadStart,带一个参数的用ParameterizedThreadStart。带多个参数的用另外的方法
    • 由于ParameterizedThreadStart要求参数类型必须为object,所以定义的方法SendEmail形参类型必须为object。
    • 由于Thread默认只提供了这两种构造函数,如果需要传递多个参数,我们可以自己将参数作为类的属性。定义类的对象时候实例化这个属性,然后进行操作参考文章
      参考文章

    相关文章

      网友评论

          本文标题:C# 多线程学习 2018-07-05

          本文链接:https://www.haomeiwen.com/subject/aelpuftx.html