zoukankan      html  css  js  c++  java
  • C# 多线程传参 三种实例

    //using Thread to download files

    //1111111111111111
    foreach (var str in listDownloadPdf)
    {
    //string hello1 = "hello world";
    //这里也可简写成Thread thread = new Thread(ThreadMainWithParameters);
    //但是为了让大家知道这里用的是ParameterizedThreadStart委托,就没有简写了
    Thread thread1 = new Thread(new ParameterizedThreadStart(ThreadMainWithParameters));
    thread1.Start(str);
    }

    //2222222222222222222
    foreach (var str in listDownloadPdf)
    {
    MyThread myThread = new MyThread(str);
    Thread thread2 = new Thread(myThread.ThreadMain);
    thread2.Start();
    }

    //333333333333333
    foreach (var str in listDownloadPdf)
    {
    //string hello3 = "hello world";
    //如果写成Thread thread = new Thread(ThreadMainWithParameters(hello));这种形式,编译时就会报错
    Thread thread3 = new Thread(() => ThreadMainWithParameters(str));
    thread3.Start();
    }

    //333333333333333333333
    static void ThreadMainWithParameters(string str)
    {
    Console.WriteLine("33333333333333333,received: {0}", str);
    }
    //111111111111111111111
    static void ThreadMainWithParameters(object obj)
    {
    string str = obj as string;
    if (!string.IsNullOrEmpty(str))
    Console.WriteLine("1111111111111111,received: {0}", str);
    }

    //222222222222222222
    public class MyThread
    {
    private string data;

    public MyThread(string data)
    {
    this.data = data;
    }

    public void ThreadMain()
    {
    Console.WriteLine("222222222222222222: {0}", data);
    }
    }

  • 相关阅读:
    依赖查找与依赖注入
    实时插入排序算法
    Phantomjs实现后端将URL转换为图片
    唯一约束 UNIQUE KEY
    基于队列模型编写一个入岗检查站
    通过实例深入理解监听器
    函数式接口
    Linux学习6-安装Python3.6
    Jenkins构建项目后发送钉钉消息推送
    Docker学习之安装tomcat环境
  • 原文地址:https://www.cnblogs.com/HaifengCai/p/3625632.html
Copyright © 2011-2022 走看看