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

            }
  • 相关阅读:
    Python 队列
    Python 栈
    Python面试百题
    TCP:四次挥手
    TCP:三次握手
    SQL:八 SQL高级处理
    SQL:七 集合运算
    SQL:六 函数、谓词、CASE表达式
    SQL:五 复杂查询
    python爬虫——爬取网页数据和解析数据
  • 原文地址:https://www.cnblogs.com/dashi/p/4034742.html
Copyright © 2011-2022 走看看