gpt4 book ai didi

c# - 同时调用 3 个函数。应该使用 Parallel.For 吗?

转载 作者:太空狗 更新时间:2023-10-30 01:14:04 24 4
gpt4 key购买 nike

问题:

我目前在我的代码中调用 3 个函数,它们在彼此后面执行,这需要一些时间才能完成。所以我想知道是否有办法同时调用它们,例如使用 Parallel.For 循环。

如果我可以使用 Parallel.For 循环,我将如何做到这一点?这是正确的使用方法吗?

Parallel.For(0, 1, i =>
{
bool check1 = function1(address);
bool check2 = function2(address);
bool check3 = function3(address);
});

我当前的代码:

private void check()
{
for (int i = 0; i < dataGridView1.RowCount; i++)
{
string address = dataGridView1.Rows[i].Cells[0].Value.ToString();

try
{
if (address.Length < 6)
{
// Those 3 functions are currently called behind each other
// Could those be called inside a Parallel.For loop at the same time?
bool check1 = function1(address);
bool check2 = function2(address);
bool check3 = function3(address);
}
else
{
dataGridView1.Rows[i].Cells[2].Value = "Error";
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}

最佳答案

作为快速估计(您将获得合理的 yield ),您可以尝试Parallel Linq (PLinq)。

bool[] results = new Func<string, bool>[] {function1, function2, function3}
.AsParallel()
.AsOrdered() // <- to guarantee function / outcome correspondence
.Select(f => f(address))
.ToArray();

bool check1 = results[0];
bool check2 = results[1];
bool check3 = results[2];

关于c# - 同时调用 3 个函数。应该使用 Parallel.For 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46546557/

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