gpt4 book ai didi

c# - 线程方法参数

转载 作者:行者123 更新时间:2023-12-03 13:20:32 26 4
gpt4 key购买 nike

您好,我创建了 3 个线程,但我需要它们共同使用一个数组列表来插入数据,我的问题是我创建了这样的线程 Thread t = new Thread(doThread);但是如果你看到 do thread 它是一个没有参数的方法,但我想传递前面提到的数组列表。
这是可能的 ?

最佳答案

您可以使用 ParameterizedThreadStart代表

例如,

ArrayList theList = new ArrayList(); 
Thread t = new Thread(doThread);
t.Start(theList);

只要您的代表 doThread,这将有效, 有一个匹配的签名:
public delegate void ParameterizedThreadStart(
Object obj
)

关于 ParameterizedStart 的更多信息代表可以找到 here .

编辑 - 只需阅读您将需要的不仅仅是 ArrayList .请记住,虽然它只接受一个参数,但您可以创建自己的 Object作为您需要发送到该方法的所有内容的包装器。
public class SendDataExample
{
public ArrayList myList { get; set; }
public string myString { get; set; }
}

然后您可以使用 Object在你的代表中是这样的:
public void doThread(object data)
{
var sendDataExample = (SendDataExample)data;
ArrayList myList = sendDataExample.myList;
string myString = sendDataExample.myString;
...
}

关于c# - 线程方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17396040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com