zoukankan      html  css  js  c++  java
  • 【.NET重修计划】带参数的线程

    带参数的线程
    一、带参数线程的声明及使用。

      Thread 线程名 = new  Thread(new ParameterizedThreadStart(方法名));
      线程名.Start(参数);


      ①线程直接传入的参数只能有一个,且为object型。

      ②方法中须将传入的参数强制转换为方法所需的值类型。
      ③要传入多个参数时,可以通过实例化一个对象类,使用该对象类的属性,或者创建一个数组。


    二、案例“使用传入多个参数的线程”

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.IO;

    namespace 线程传参
    {
    class Program
    {
    static void Main(string[] args)
    {
    //实例化Text对象。
    Text txt1 = new Text();
    txt1.txtName
    = "AAAAAAAA";
    txt1.about
    = "aaaaaaaa";

    //实例化Write对象。
    Write write1 = new Write();

    //创建一个带参数的线程。
    Thread thread1=new Thread(new ParameterizedThreadStart(write1.WriteText));

    //这里只能传递一个object类型的参数,使用实例化对象的属性可以达到传递多个参数的目的。
    thread1.Start(txt1);
    }

    //创建一个Text类,用属性来传递多个参数。
    public class Text
    {
    //.Net Framework 3.0之后可以直接用set;get;来接收属性。
    public string txtName { set; get; }
    public string about { set; get; }
    }

    public class Write
    {
    //接收参数的方法。
    public void WriteText(object txt)
    {
    //这里是将传递过来的object型参数强制转换为原来的类型。
    string txtName = ((Text)txt).txtName;
    string about = ((Text)txt).about;
    File.WriteAllText(
    "H:\\Blog_Work\\线程传参\\线程传参创建的文件\\" + txtName + ".txt", about);
    }
    }
    }
    }

      Over

  • 相关阅读:
    Leetcode题目:Remove Duplicates from Sorted List
    Leetcode题目:Lowest Common Ancestor of a Binary Search Tree
    Leetcode题目:Ugly Number
    Leetcode题目:Remove Linked List Elements
    Leetcode题目:Count and Say
    6-3 事务
    6-1 视图
    5-2 pymysql模块
    5-1 图形工具Navicat
    4-3 多表查询
  • 原文地址:https://www.cnblogs.com/firstdown/p/1879914.html
Copyright © 2011-2022 走看看