c# - 将参考放在不同的线程上
问题描述
有什么办法可以把这个方法放在不同的线程上?
我尝试将函数放在线程中,但我不能在其中使用 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();
}
解决方案
如果要跟踪变量value
,可以将其设为类级别的公共静态属性,而不是 ref 参数。
您应该将该关注点分离到另一个属性或单个实例类中。
推荐阅读
- c++ - 为 C++/CLI 中的所有请求向 WebBrowser 控件添加自定义标头?
- c# - 询问用户是否要更改 OnInterruptDialogAsync 中的技能
- python-3.x - 对于仅在单行上的训练集,标签编码器给出错误为“数组索引过多”
- google-analytics - GTM 链接多个触发器并将数据从一个标签传递到另一个标签
- python - 数据框将数据类型写入txt文件
- flutter - 抽屉未定义
- sql - 避免在执行连接提取时生成的选择查询数量
- java - 我们可以在 Spring Boot 中将 csv 文件写入 S3 而不在本地创建文件吗?
- javascript - 角度 AOT 中的动态模板 URL
- php - Ajax resquest响应在php mysql中总是等于零