Xamarin TimeSpan 使用时间小于 1 毫秒

问题描述

我有一个使用 TimeSpan 的类库 (.net Standard 2.0)。如果我在控制台应用程序中使用类库,一切都会按预期工作。但是,当我在 Xamarin Forms(Shell App)应用程序中使用它时,对于小于 1 毫秒的任何值,TimeSpan 为 00:00:00。不幸的是,我的计算需要微秒。

以下面的代码为例(实际代码比这更复杂,这只是最容易显示错误”的):

var timetest = TimeSpan.FromSeconds(0.02286 / 943.356);

控制台应用程序的结果如下

enter image description here

这适用于 Xamarin 应用程序

enter image description here

我看到控制台应用程序的天数、小时数、分钟数、秒数和毫秒数是 32 位值,而 Xamarin 是 16 位值。

有没有办法像在控制台应用程序中一样处理 Xamarin 中的 TimeSpan 值?或者是不可能的,我必须修改Class库才能只使用Double来表示秒?

解决方法

感谢 Jason 在评论中给出答案。放在这里让大家看得一清二楚?

这里您创建了 100 个滴答声,因此相当于 0.1 毫秒:

TimeSpan t = new TimeSpan(100);

所以,在这个确切的上下文中,它是:

var timetest = new TimeSpan((int)(TimeSpan.TicksPerSecond*0.02286 / 943.356));

关于时间跨度的更多信息:https://docs.microsoft.com/en-us/dotnet/api/system.timespan.-ctor?view=net-5.0#System_TimeSpan__ctor_System_Int32_System_Int32_System_Int32_