• 线程基本用法



    一、不带参数的

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;

    namespace AAAAAA
    {
        
    class AAA
        
    {
            
    public static void Main()
            
    {
                Thread t 
    = new Thread(new ThreadStart(A));
                t.Start();

                Console.Read();
            }


            
    private static void A()
            
    {
                Console.WriteLine(
    "Method A!");
            }

        }

    }

     

          结果显示Method A!

    二、带一个参数的

         由于ParameterizedThreadStart要求参数类型必须为object,所以定义的方法B形参类型必须为object。

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;

    namespace AAAAAA
    {
        
    class AAA
        
    {
            
    public static void Main()
            
    {         
                Thread t 
    = new Thread(new ParameterizedThreadStart(B));
                t.Start(
    "B");

                Console.Read();
            }


            
    private static void B(object obj)
            
    {
                Console.WriteLine(
    "Method {0}!",obj.ToString ());

            }

        }

    }

     

     结果显示Method B!

    三、带多个参数的

         由于Thread默认只提供了这两种构造函数,如果需要传递多个参数,我们可以自己将参数作为类的属性。定义类的对象时候实例化这个属性,然后进行操作。

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;

    namespace AAAAAA
    {
        
    class AAA
        
    {
            
    public static void Main()
            
    {
                My m 
    = new My();
                m.x 
    = 2;
                m.y 
    = 3;

                Thread t 
    = new Thread(new ThreadStart(m.C));
                t.Start();

                Console.Read();
            }

        }


        
    class My
        
    {
            
    public int x, y;

            
    public void C()
            
    {
                Console.WriteLine(
    "x={0},y={1}"this.x, this.y);
            }

        }

    }

     

         结果显示x=2,y=3

    四、利用结构体给参数传值。

    定义公用的public struct,里面可以定义自己需要的参数,然后在需要添加线程的时候,可以定义结构体的实例。

    //结构体
      struct RowCol
        
    {
            
    public int row;
            
    public int col;
        }
    ;

    //定义方法
     public void Output(Object rc)
            
    {
                RowCol rowCol 
    = (RowCol)rc;
                
    for (int i = 0; i < rowCol.row; i++)
                
    {
                    
    for (int j = 0; j < rowCol.col; j++)
                        Console.Write(
    "{0} ", _char);
                    Console.Write(
    "\n");
                }

            }
  • 相关阅读:
    [教程]北京迅为iMX6ULL开发板上配置 AP 热点
    [QT进阶篇]迅为手把手视频教程嵌入式学习之QT进阶篇
    新手学习嵌入式Linux和Android开发板推荐
    【迅为免费教程】 嵌入式学习之Linux入门篇分享
    迅为 iTOP-i.MX6ULL 开发板-Mqtt 移植教程
    9月29日学习日志
    9月8日学习日志
    9月7日学习日志
    9月6日学习日志
    9月5日学习日志
  • 原文地址:https://www.cnblogs.com/dashi/p/4034742.html
Copyright © 2020-2023  润新知