.net 具有TimeSpan.From...或常量时间值的CancellationTokenSource?

1l5u6lss  于 2023-04-22  发布在  .NET
关注(0)|答案(3)|浏览(97)

在创建CancellationToken时,使用TimeSpan.FromMilliseconds(1000)而不是使用常量值有什么好处吗?

CancellationTokenSource ctsTs = new(TimeSpan.FromMilliseconds(1000));
CancellationTokenSource ctsConst = new(1000);
5anewei6

5anewei61#

使用TimeSpan的好处是它告诉读者 * 这个数字代表什么 *(一段时间)。
使用TimeSpan的另一个好处是你不必传递毫秒-你可以传递一些更可读的东西(至少对新程序员来说),比如秒:

CancellationTokenSource ctsTs = new(TimeSpan.FromSeconds(1));
cidc1ykv

cidc1ykv2#

它告诉读者时间跨度的单位是毫秒,但1000没有。

7eumitmz

7eumitmz3#

从.NET的Angular 来看,两者之间没有区别。CancellationTokenSource源代码最后它只需要TimeSpan的TotalMilliseconds,这就是它的初始化方式。
通过使用Timespan.FromMilliseconds,对于用户/读者来说,它使用毫秒并且数字1000表示为ms更清楚。然而,如果您只留下1000,则用户将不得不采取额外的操作以弄清楚1000是否意味着分钟,秒或毫秒。如果您根本不喜欢使用Timespan,另一个选择是为数字1000引入单独的常数,并给予它一个更具描述性的名称。

相关问题