首页 > 解决方案 > 将参考放在不同的线程上

问题描述

有什么办法可以把这个方法放在不同的线程上?

我尝试将函数放在线程中,但我不能在其中使用 ref 关键字。我也尝试过使方法异步,但那些也不支持 ref 。如果我这样调用函数,它会起作用:

new Thread(() => x.Animate(0f, 1f, 1000, Ease.Linear)).Start();

但这似乎不方便。

    public static void Animate(this ref float value, float start, float change, int duration, Ease easing)
    {
        Stopwatch timer = new Stopwatch();
        timer.Start();
        while (timer.ElapsedMilliseconds <= duration)
        {
                value = easing.Execute((int)timer.ElapsedMilliseconds, start, change, duration);
        }
        timer.Stop();
    }

标签: c#multithreadingref

解决方案


如果要跟踪变量value,可以将其设为类级别的公共静态属性,而不是 ref 参数。

您应该将该关注点分离到另一个属性或单个实例类中。


推荐阅读