在创建CancellationToken时,使用TimeSpan.FromMilliseconds(1000)而不是使用常量值有什么好处吗?
CancellationTokenSource ctsTs = new(TimeSpan.FromMilliseconds(1000)); CancellationTokenSource ctsConst = new(1000);
5anewei61#
使用TimeSpan的好处是它告诉读者 * 这个数字代表什么 *(一段时间)。使用TimeSpan的另一个好处是你不必传递毫秒-你可以传递一些更可读的东西(至少对新程序员来说),比如秒:
TimeSpan
CancellationTokenSource ctsTs = new(TimeSpan.FromSeconds(1));
cidc1ykv2#
它告诉读者时间跨度的单位是毫秒,但1000没有。
1000
7eumitmz3#
从.NET的Angular 来看,两者之间没有区别。CancellationTokenSource源代码最后它只需要TimeSpan的TotalMilliseconds,这就是它的初始化方式。通过使用Timespan.FromMilliseconds,对于用户/读者来说,它使用毫秒并且数字1000表示为ms更清楚。然而,如果您只留下1000,则用户将不得不采取额外的操作以弄清楚1000是否意味着分钟,秒或毫秒。如果您根本不喜欢使用Timespan,另一个选择是为数字1000引入单独的常数,并给予它一个更具描述性的名称。
3条答案
按热度按时间5anewei61#
使用
TimeSpan
的好处是它告诉读者 * 这个数字代表什么 *(一段时间)。使用
TimeSpan
的另一个好处是你不必传递毫秒-你可以传递一些更可读的东西(至少对新程序员来说),比如秒:cidc1ykv2#
它告诉读者时间跨度的单位是毫秒,但
1000
没有。7eumitmz3#
从.NET的Angular 来看,两者之间没有区别。CancellationTokenSource源代码最后它只需要TimeSpan的TotalMilliseconds,这就是它的初始化方式。
通过使用Timespan.FromMilliseconds,对于用户/读者来说,它使用毫秒并且数字1000表示为ms更清楚。然而,如果您只留下1000,则用户将不得不采取额外的操作以弄清楚1000是否意味着分钟,秒或毫秒。如果您根本不喜欢使用Timespan,另一个选择是为数字1000引入单独的常数,并给予它一个更具描述性的名称。