我有以下代码:
public void SetMove(Position3D pos, float time, float linearity, bool relative)
{
ExecuteOnActiveClients(delegate(NeuroClient client)
{
client.Engine.GetProcAnimation(name).SetMove(pos, time, linearity, relative);
}, true, true);
}
其中 ExecuteOnActiveClients 将委托推送到队列中,异步使用,并具有以下签名:
void ExecuteOnActiveClients(ClientDelegate action, Boolean parallel, Boolean wait, Boolean lockClient)
我有很多类似这个的函数,并且可以同时调用。
我注意到我必须存储的值name(这是类的私有字段)在我执行 ExecuteOnActiveClients 之前函数中的变量中以使此代码正常工作,因为如果我不这样做,委托将使用最后一个值name,而不是调用函数时字段的值。
我猜这是一个范围问题,因为函数的参数(位置、时间、线性和相对)是正确的。
有没有办法强制委托使用的值name它被创建的时间,而不是它的值name什么时候执行?
我想避免将值存储在每个使用的函数中在活动客户端上执行如果可能的话。
提前致谢
Mike