gpt4 book ai didi

.net - C#4.0如何将变量传递给线程?

转载 作者:行者123 更新时间:2023-12-03 13:14:15 24 4
gpt4 key购买 nike

我如何将一些参数传递给运行另一个类中的函数的新线程?
我想做的是将数组或多个变量传递给位于另一个类中的函数,并由新线程调用该函数。

我试图这样做>

    Functions functions = new Functions();

string[] data;

Thread th = new Thread(new ParameterizedThreadStart(functions.Post()));

th.Start(data);

但显示错误“方法'Post'的重载没有接受0个参数”

有任何想法吗 ?

最佳答案

由于已将C#4标记为该标志,因此新的方法是:

Functions functions = new Functions();

string[] data = GetData();

Task.Factory.StartNew( () => functions.Post(data) );

如果您确实想使用专用线程而不是Task Parallel库来保留它,则可以。给定您的评论,听起来 Post()可能已定义为 Post(string[] data)。因为 ParameterizedThreadStart期望该方法为 Post(object data),所以这将不起作用。

您可以通过lambdas并使用 ThreadStart而不是ParameterizedThreadStart来解决此问题,而无需更改方法:
Functions functions = new Functions();
string[] data = GetData();
Thread th = new Thread( () =>
{
functions.Post(data);
});
th.Start();

关于.net - C#4.0如何将变量传递给线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2649372/

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