zoukankan      html  css  js  c++  java
  • 线程基本用法


    一、不带参数的

    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");
                }

            }
  • 相关阅读:
    场曲——像差相关
    曲面探测器相关——查资料
    光学系统联合设计
    Python3:Django连接Mysql数据库时出错,'Did you install mysqlclient or MySQL-python?'
    Python3.x:pip install pymssql安装时出错
    Python3:自动发送账单邮件
    Python3:input()输入函数的用法
    Python3:读取配置dbconfig.ini(含有中文)显示乱码的解决方法
    python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件
    CSS3:布局display属性的flex(弹性布局)
  • 原文地址:https://www.cnblogs.com/dashi/p/4034742.html
Copyright © 2011-2022 走看看