Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无GA/GC的第二个字符串的千分之一的最佳获取_C#_Unity3d_Math_Garbage - Fatal编程技术网

C# 无GA/GC的第二个字符串的千分之一的最佳获取

C# 无GA/GC的第二个字符串的千分之一的最佳获取,c#,unity3d,math,garbage,C#,Unity3d,Math,Garbage,作为计时器,如何在不分配任何垃圾的情况下读取千分之一秒的读数 我知道可以为0.999构建一个从000到999的字符串数组,并从第千分之一数组[nnn] 但是,我如何从每个时间报告、每个帧中划分它,而不在划分秒的过程中创建垃圾 当前时间是14点397分 我需要在不产生任何垃圾的情况下,将397从14秒中分离出来 但是数学函数似乎每一帧都会产生一些垃圾。我想不出什么是最理想的。甚至工作。我认为这不可能不产生任何垃圾。你应该尽量少花钱 您可以使用它将其向下舍入到最后一个int使其“忘记”任何小数,然后

作为计时器,如何在不分配任何垃圾的情况下读取千分之一秒的读数

我知道可以为0.999构建一个从000到999的字符串数组,并从
第千分之一数组[nnn]

但是,我如何从每个时间报告、每个帧中划分它,而不在划分秒的过程中创建垃圾

当前时间是14点397分

我需要在不产生任何垃圾的情况下,将397从14秒中分离出来


但是数学函数似乎每一帧都会产生一些垃圾。我想不出什么是最理想的。甚至工作。

我认为这不可能不产生任何垃圾。你应该尽量少花钱

您可以使用它将其向下舍入到最后一个
int
使其“忘记”任何小数,然后从原始值中减去它,如

float time = 14.6978f;

float fullSeconds = Mathf.Floor(time);
// = 14 (rounded down)

int thousandthOfSeconds = Mathf.RoundToInt((time - fullSeconds) * 1000); 
// = 698 (rounded up)

这至少比处理任何字符串都要便宜。

清理非托管资源有不同的方法:

实现IDisposable接口和处理方法 “using”块还用于清理非托管资源 有两种方法可以实现Dispose方法:

使用“SafeHandle”类实现Dispose(它是内置的抽象类,已实现“CriticalFinalizerObject”和“IDisposable”接口) 要重写的Finalize方法(此方法是特定对象在销毁之前使用的干净非托管资源) 让我们看一下下面的代码以处置非托管资源:


使用“SafeHandle”类实现Dispose:

关于数字的极好观点几乎总是比千分之一秒多得多的信息。我完全忘记了这一点,只是更仔细地看了看Mathf,他们有两件东西是一样的:Ceil和CeilPoint。难怪有人在制造垃圾,你什么意思
Ceil
Floor
的反面,而
CailToInt
FloorToInt
的反面(用于始终向上取整)。这不是完全相同的事情:
Floor
Ceil
仍然返回
float
,而
FloorToInt
RoundToInt
还包括一个到
int
的类型转换。若你们同意浮点数作为返回值,当然你们可以使用
Mathf,Round
以及wait。。。我现在更糊涂了。我道歉。我几乎不知道你在暗示什么。