c# 螺纹方法

如果我有


public void Method/int m/
{
...
}


如何为此方法创建流?

流动 t = 新流量 //方法//;

t.Start/m/;

不起作用。
已邀请:

莫问

赞同来自:

您可以使用表达式执行它。 lambda. 编译器 C# 自动创建委托
ThreadStart

对于鳞片。


Thread t = new Thread/// => Method/m//;
t.Start//;


请注意,如果您更改
m

后来在其代码中,如果他尚未进入,更改将分发到流中
Method

. 如果这是一个问题,你必须制作副本
m

.

卫东

赞同来自:

您呼叫的方法需要参数。 由于它有一个参数和返回类型 void 您可以使用以下内容


ThreadPool.QueueUserWorkItem/o => Method/m//;


你不需要改变 int 使用此方法的方法签名中的对象。

有利弊 ThreadPool 与手动运行自己的流相比。
https://coderoad.ru/230003/

奔跑吧少年

赞同来自:

ThreadStart tsd = new ThreadStart/ThreadMethod/;
Thread t = new Thread/tsd/;
t.Start//;


线程方法必须是具有返回类型的方法 void 而不是接受论据。


public void ThreadMethod// {.....}


还有一个选项调用 ParameterizedThreadStart


ParameterizedThreadStart ptsd = new ParameterizedThreadStart/ThreadParamMethod/;
Thread t = new Thread/ptsd/;
t.Start/yourIntegerValue/;


ThreadParammethod是一种返回类型的方法 void 并接受一个类型的论点 object. 但是,您可以将几乎所有物品传递为对象。


public void ThreadParamMethod/object arg/ {.....}

喜特乐

赞同来自:

该方法必须采取对象,而不是 int, 能够使用委托 ParameterizedThreadStart.

因此,你第一次改变 m 在对象上并带来它 int.

二哥

赞同来自:

请试试:


Thread t = new Thread/new ThreadStart/method//; 
t.Start//;

要回复问题请先登录注册