gpt4 book ai didi

c# - 我如何使用带参数的函数在线程中创建什么?

转载 作者:行者123 更新时间:2023-11-30 17:16:51 26 4
gpt4 key购买 nike

我在线程中使用带参数的函数创建什么?

Thread t = new Thread(new ParameterizedThreadStart(fetchQuotes(cp)));

void fetchQuotes(SomeObject obj)
{
[DoSomething With SomeObject]
}

最佳答案

这里最简单的方法是在非参数化 (ThreadStart) 签名上使用闭包:

Thread t = new Thread(() => fetchQuotes(cp));
...
t.Start();

这是在编译时静态检查正确性的,而且很方便(例如,您可以传递任意数量的参数)。

另一种方法是将对象作为参数传递(ParameterizedThreadStart):

Thread t = new Thread(fetchQuotes);
...
t.Start(cp);
...
void fetchQuotes(object obj)
{
SomeObject obj2 = (SomeObject) obj;
[DoSomething With SomeObject]
}

这里我们传递的是object,所以在编译时没有进行类型检查。 “脑死亡”错误只会在运行时出现。

关于c# - 我如何使用带参数的函数在线程中创建什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6896902/

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