gpt4 book ai didi

c# - 如何使用参数调用线程中的方法并返回一些值

转载 作者:太空狗 更新时间:2023-10-29 20:43:25 26 4
gpt4 key购买 nike

我喜欢用参数调用线程中的方法并在此处返回一些值示例

class Program
{
static void Main()
{
Thread FirstThread = new Thread(new ThreadStart(Fun1));
Thread SecondThread = new Thread(new ThreadStart(Fun2));
FirstThread.Start();
SecondThread.Start();
}
public static void Fun1()
{
for (int i = 1; i <= 1000; i++)
{
Console.WriteLine("Fun1 writes:{0}", i);
}
}
public static void Fun2()
{
for (int i = 1000; i >= 6; i--)
{
Console.WriteLine("Fun2 writes:{0}", i);
}
}
}

我知道上面的例子运行成功但是如果方法 fun1 是这样的

public int fun1(int i,int j)
{
int k;
k=i+j;
return k;
}

那我如何在线程中调用它呢?

最佳答案

您应该能够使用匿名方法或 lambda 来提供完整的静态检查:

Thread FirstThread = new Thread(() => Fun1(5, 12));

或者如果你想对结果做些什么:

Thread FirstThread = new Thread(() => {
int i = Fun1(5, 12);
// do something with i
});

但请注意,这个“做某事”仍然在新线程的上下文中运行(但可以访问外部方法 (Main) 中的其他变量,这由“捕获的变量”提供)。

如果你有 C# 2.0(而不是更高版本),那么:

Thread FirstThread = new Thread((ThreadStart)delegate { Fun1(5, 12); });

Thread FirstThread = new Thread((ThreadStart)delegate {
int i = Fun1(5, 12);
// do something with i
});

关于c# - 如何使用参数调用线程中的方法并返回一些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642978/

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