gpt4 book ai didi

c# - 通用 lambda 方法签名

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

我确信这是非常标准的东西,但我似乎无法理解这一点。

我正在编写一个简单的辅助类,用于在单独的线程中执行代码。我非常熟悉一般如何执行此操作,但不使用 lambda。我想这是关于一般的 lambda 用法,而不是线程。

我想写的是这样的:

ThreadedMethods.Parameterized<int>((i) => { for (;i < 10; i++;) DoSomething();});

ThreadedMethods.Parameterized<IEnumberable<Something>>((list) => 
{
foreach (var s in list)
{
s.SomeHeavyProcessing();
}
});

这可能吗?此外,是否有任何理由首先尝试实现这一目标,因为 lambda 将可以访问方法调用范围内的所有内容?

最佳答案

当然,这是可能的。你应该有实现

class ThreadedMethods {
public static void Parameterized<T>(Action<T> action) {
// Start the action on a different thread using possibly ThreadPool.QueueUserWorkItem
}
}

然后您调用您的实现,正如您在问题中的示例所示。

编辑:有关在具有 Action 时如何调用 ThreadPool.QueueUserWorkItem 方法的更多信息

    public void StartOnDifferentThread<T>(Action<T> action, T input)
{
ThreadPool.QueueUserWorkItem(o => action((T)o), input);
}

关于c# - 通用 lambda 方法签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7297018/

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