Task 传匿名委托时,怎么使用参数才正确
重载,带参数的线程用public Thread(ParameterizedThreadStart start);参数必需是object类型ParameterizedThreadStart ParStart = new ParameterizedThreadStart(ThreadMethod); Thread myThread = new Thread(ParStart); object obj = "hello"
c#语法TestThread thread = new TestThread(this)
this 按单词意思 : 这,这个,
C# 中表示当前的 类 或是 当前的什么,一般指类!
在这里TestThread thread = new TestThread(this)
就是说把当前的 类 [this] 传给了TestThread ,
(是线程吗! 我不太清楚了啊!是的话,大概解释应该是 新启动的线程要 this 当参数)
C# 如何编写像系统函数那样,有多种调用模式?
就是重载,定义同名函数,参数定义成不同数量或类型就可以了。
举个栗子
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Threading.Tasks;
namespace?ConsoleApplication1
{
????class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????double?l?=?2.0;
????????????double?h?=?3.7;
????????????double?r?=?2.5;??????????
????????????double?A1?=?getArea(l,?h);
????????????double?A2?=?getArea(r);???
????????}
????????///?
????????///?求平行四边形面积
????????///?
????????///?
长
????????///?
高
????????///?
平行四边形面积
????????private?static?double?getArea(double?l,?double?h)
????????{
????????????return?l?*?h;
????????}
????????///?
????????///?求圆的面积
????????///?
????????///?
半径
????????///?
圆面积
????????private?static?double?getArea(double?r)
????????{
????????????return?Math.PI?*?r?*?r;
????????}
????}
}
c# Thread thread = new Thread(new ThreadStart (test)); thread.Start(); test是个2重载方法 线程如何启
重载的本质是不同的方法同样的名字
ThreadStart 委托的形式为
void test();
也就是只会调用你这种形式的重载
要使用参数,可以使用ParameterizedThreadStart
此委托的形式为
void test(object state);
如果你的重载方法不是以上两种形式,请先包装后在使用
Thread thread=new Thread(new ParameterizedThreadStart(test) ) ;