gpt4 book ai didi

c# - 比较多个回调的参数

转载 作者:行者123 更新时间:2023-11-30 16:47:14 25 4
gpt4 key购买 nike

我正在使用 Unity 引擎编写游戏,目前遇到以下问题:

我有一个方法,使用回调函数的参数异步返回他的结果。非常简单,看起来像这样:

public void CalculateSomething( - PARAMETERS - , Action<float> callback)

我必须在循环中为不同的参数调用此方法。

foreach(float f in manyFloats){
CalculateSomething(f, myCallback);
}
void myCallback(float f){
...compare this result value to the other values?...
}

现在我想比较不同回调带来的结果 float 。假设我想在这些 float 中找到最高值。我该怎么做?

我有想法将结果存储在一个数组字段中,并在它完全填充后进行比较,但我不知道如何检查是否所有回调都已完成。

理想情况下,我想避免用这样的字段污染我的类,但如果没有其他方法也没关系。

CalculateSomething 函数是库的一部分,因此我无法更改它。其他一切都是可变的。

最佳答案

这是交易。创建数组和存储值并在所有回调完成后比较它们是正确的。因此问题是您不知道何时返回所有回调。但是根据原始 manyFloats 变量的计数,您知道有多少回调。您需要做的就是保留一个计数器,并在每次返回回调时将其加起来。并检查它是否等于 manyFloats 的计数然后你可以进行比较:

int count = 0;
void myCallback(float f)
{
... usual stuff
... then
if(count == manyFloats.Count)
{
// do the comparison
}
else
{
count ++;
}
}

关于c# - 比较多个回调的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39836595/

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