1. 线程操作主要用到Thread类,他是定义在System.Threading.dll下。使用时需要添加这一个引用。该类提供给我们四个重载的构造函数(以下引自msdn)。
  2. Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托。
  3. Thread (ThreadStart) 初始化 Thread 类的新实例。
  4. 由 .NET Compact Framework 支持。
  5. Thread (ParameterizedThreadStart, Int32) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托,并指定线程的最大堆栈大小。
  6. Thread (ThreadStart, Int32) 初始化 Thread 类的新实例,指定线程的最大堆栈大小。
  7. 由 .NET Compact Framework 支持。
  8. 我们如果定义不带参数的线程,可以用ThreadStart,带一个参数的用ParameterizedThreadStart。带多个参数的用另外的方法,下面逐一讲述。
  9. 一、不带参数的
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Text;
  13. using System.Threading;
  14. namespace AAAAAA
  15. {
  16. class AAA
  17. {
  18. public static void Main()
  19. {
  20. Thread t = new Thread(new ThreadStart(A));
  21. t.Start();
  22. Console.Read();
  23. }
  24. private static void A()
  25. {
  26. Console.WriteLine("Method A!");
  27. }
  28. }
  29. }
  30. 结果显示Method A!
  31. 二、带一个参数的
  32. 由于ParameterizedThreadStart要求参数类型必须为object,所以定义的方法B形参类型必须为object。
  33. using System;
  34. using System.Collections.Generic;
  35. using System.Text;
  36. using System.Threading;
  37. namespace AAAAAA
  38. {
  39. class AAA
  40. {
  41. public static void Main()
  42. {
  43. Thread t = new Thread(new ParameterizedThreadStart(B));
  44. t.Start("B");
  45. Console.Read();
  46. }
  47. private static void B(object obj)
  48. {
  49. Console.WriteLine("Method {0}!",obj.ToString ());
  50. }
  51. }
  52. }
  53. 结果显示Method B!
  54. 三、带多个参数的
  55. 由于Thread默认只提供了这两种构造函数,如果需要传递多个参数,我们可以自己将参数作为类的属性。定义类的对象时候实例化这个属性,然后进行操作。
  56. using System;
  57. using System.Collections.Generic;
  58. using System.Text;
  59. using System.Threading;
  60. namespace AAAAAA
  61. {
  62. class AAA
  63. {
  64. public static void Main()
  65. {
  66. My m = new My();
  67. m.x = 2;
  68. m.y = 3;
  69. Thread t = new Thread(new ThreadStart(m.C));
  70. t.Start();
  71. Console.Read();
  72. }
  73. }
  74. class My
  75. {
  76. public int x, y;
  77. public void C()
  78. {
  79. Console.WriteLine("x={0},y={1}", this.x, this.y);
  80. }
  81. }
  82. }
  83. 结果显示x=2,y=3
  84. 四、利用结构体给参数传值。
  85. 定义公用的public struct,里面可以定义自己需要的参数,然后在需要添加线程的时候,可以定义结构体的实例。
  86. //结构体
  87. struct RowCol
  88. {
  89. public int row;
  90. public int col;
  91. };
  92. //定义方法
  93. public void Output(Object rc)
  94. {
  95. RowCol rowCol = (RowCol)rc;
  96. for (int i = 0; i < rowCol.row; i++)
  97. {
  98. for (int j = 0; j < rowCol.col; j++)
  99. Console.Write("{0} ", _char);
  100. Console.Write("\n");
  101. }
  102. }

c# 多线程 调用带参数函数相关推荐

  1. ASP调用带参数存储过程的几种方式

    最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法. 1. 这也是最简单的方法,两个输入参数,无返回值: set connection = server.creat ...

  2. C#线程调用带参数的方法 ~

    在 .NET Framework 2.0 版中,要实现线程调用带参数的方法有两种办法. 第一种:使用ParameterizedThreadStart. 调用 System.Threading.Thre ...

  3. python调用带参函数_Python | 带有示例的函数调用类型

    python调用带参函数 There are following types of function calls in python: python中有以下类型的函数调用: Call by value ...

  4. python怎么来算面积_Python实现计算长方形面积(带参数函数demo)

    Python实现计算长方形面积(带参数函数demo) 如下所示: # 计算面积函数 def area(width, height): return width * height def print_w ...

  5. ASP调用带参数存储过程的几种方式 (转)

    最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法. 1. 这也是最简单的方法,两个输入参数,无返回值: set connection = server.creat ...

  6. 使用SqlDataSource调用带参数存储过程(获取不到数据?)

    最近被朋友问到一个SqlDataSource调用带参数存储过程为什么不成功,代码如下: string user_name = ((TextBox)this.DetailsView1.Rows[1].C ...

  7. js循环动态绑定带参数函数遇到的问题及解决方案[转]

    今天写原生javascript时,想利用绑定事件实现类似jquery中on方法的功能:于是有了for循环里绑定事件,无意中发现定义类能解决好多问题! 例如:一个不确定长度的列表,在鼠标经过某一条的时候 ...

  8. python装饰器带参数函数_python带参数装饰器的两种写法

    python带参数装饰器的两种写法 前言 最近在实现一个装饰器的过程中发现了一个很有意思的地方,在博客里面分享出来 不同的写法 三层函数嵌套,实现了可传参数的一个装饰器. import logging ...

  9. python装饰器带参数函数二阶导数公式_SICP Python 描述 1.6 高阶函数

    1.6 高阶函数 我们已经看到,函数实际上是描述复合操作的抽象,这些操作不依赖于它们的参数值.在square中, >>> def square(x): return x * x 我们 ...

最新文章

  1. BZOJ 3585: mex( 离线 + 线段树 )
  2. a,b互换,不使用中间变量
  3. Windows Mobile打包时增加快捷方式到开始菜单的方法
  4. 检索数据_20_按照字符串数字组合的排序
  5. 一致性设计,而不是一致性
  6. LoadRunner小技巧集锦
  7. ref out 关键字用法与区别详解
  8. 关系模型的完整性约束
  9. 把ATmega128开发板转为Arduino
  10. flash CS6 导入音频不成功的问题
  11. 圆柱体积怎么算立方公式_圆柱体积公式是什么,怎么算,
  12. python定时任务启动与停止_python定时任务最强框架APScheduler详细教程
  13. 汽车之家和易车该如何走下去?
  14. 空气炸锅炸鸡腿多少度多少分钟最好(空气炸锅炸鸡腿多少度多长时间)
  15. 微信网页授权:网页版(一)
  16. CENTOS 7 YUM 安装PHP7.4
  17. 什么牌子的无线耳机最好?最好的蓝牙耳机排行榜
  18. 国庆节去哪浪?让 Python 帮你分析分析
  19. 回溯算法——n皇后问题
  20. 修改XP开机画面最简单办法(图)

热门文章

  1. iis7.0 https访问显示403访问被拒绝_提高网站访问性能——Tomcat优化
  2. 蓝牙:为啥叫“蓝”牙,不叫“白”牙?
  3. Linux命令中的参数,linux中一些命令以及一些参数的用法
  4. php获取汉字的长度,php中处理汉字字符串长度:strlen和mb_strlen
  5. java 置信区间_仅从均值和标准差绘制置信区间
  6. 华为笔记本搭载鸿蒙系统,华为MatePad Pro2入网!预装鸿蒙系统 搭载麒麟9000
  7. oracle insert into values select from,ORACLE语法中的INSERT INTO。。。SELECT。。。 收藏
  8. 计算机二级mysql报名2020_关于2020年秋季全国计算机等级考试报名的通知
  9. l洛谷P4779 【模板】单源最短路径(标准版)(dijkstra)
  10. 桶排序+基数排序+计数排序