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

            }
  • 相关阅读:
    List、Set、Map集合大杂烩
    Android的DatePicker和TimePicker-android学习之旅(三十八)
    Ubuntu 启动项、菜单 改动 防止隐藏
    Ehcache 整合Spring 使用页面、对象缓存
    Spring MVC 相关资料整理
    Spring + Spring MVC+Hibernate框架整合详细配置
    @RequestMapping 用法详解之地址映射
    关于时间统计问题
    Oracle之物化视图
    Oracle:高效插入大量数据经验之谈
  • 原文地址:https://www.cnblogs.com/dashi/p/4034742.html
Copyright © 2011-2022 走看看