将引用放在其他线程上

时间:2019-02-17 14:33:14

标签: c# multithreading ref

有什么办法可以将此方法放在其他线程上?

我尝试将函数放入Thread中,但是无法在其中使用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();
    }

1 个答案:

答案 0 :(得分:-1)

如果要跟踪变量value,可以使它的类级公共静态属性代替ref参数。

您应该将该问题分为另一个属性或单个实例类。