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

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默认只提供了这两种构造函数,如果需要传递多个参数,我们可以自己将参数作为类的属性。定义类的对象时候实例化这个属性,然后进行操作参考文章
    参考文章
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,349评论 8 265
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,939评论 19 139
  • 果壳网出了个十五言,赤裸裸的抄袭medium,姬十三在开篇词中也明确的表示确实是抄袭。把国外的创意做成本地...
    尼航阅读 293评论 2 2
  • 香港女作家亦舒有一本名为《喜宝》的小说。年轻貌美的女主喜宝说过一句话:我这一辈子最想要的,是很多很多的爱,其次是足...
    对花情味阅读 486评论 2 4
  • 闪闪的星光,弯弯的月亮,昏黄的路灯 我想赶上你匆忙的脚步,牵着你的手 小鹿般活蹦乱跳,笑意不轻易就溢出眼底 肆无忌...
    滑纳溪阅读 240评论 0 2

友情链接更多精彩内容