【发布时间】:2026-01-10 17:25:01
【问题描述】:
我有一个 C# 程序来跟踪玩家在游戏中的位置。在这个程序中,我有一个名为 Waypoint (X, Y, Z) 的类,它表示游戏地图上的一个位置。在我生成的其中一个线程中,我不断检查玩家与某个目标航点的距离,在 while(true) 循环中彼此快速地相互连接。在 Waypoint 类中有一个名为 public double Distance(Waypoint wp) 的方法,它计算从当前航点到作为参数传递的航点的距离。
问题:每次我想检查玩家到目标航点的距离时,是否可以为玩家的位置创建一个新的航点?然后程序可能会在 while(true) 循环中一遍又一遍地创建这个玩家 Waypoint,只是为了计算距离。
PS:我的程序可能需要巧妙地使用资源,因为它运行多个线程并使用连续的 while 循环执行各种工作,例如将玩家的 X、Y、Z 位置发布到 UI。
非常感谢!
【问题讨论】:
-
通过衡量你的表现来回答表现问题。设置一个预算:比如说,一个最大工作集,或者在集合中花费的最长时间。然后测量一下是否超出预算。如果你不这样做,那么你的预算不足,所以要担心其他事情。如果你这样做了,那么改变你的分配策略并衡量影响。
标签: c# performance loops resources