今やっている仕事で、TCP/IP通信の応答時間のタイムアウトが規定されているので何で実装しようかと考えていました。
初めは Environment.TickCount を使ってみたのですが変な精度だなと思っていたら案の定。
TickCount プロパティの解像度は、500 ミリ秒未満には設定できません。
TickCount は、西暦 1 年 1 月 1 日午前 12:00 時からの経過時間を 100 ナノ秒単位で示す Ticks プロパティとは異なります。.NET Framework クラス ライブラリ Environment.TickCount プロパティ
精度500msecじゃあ使えないわな・・・と思っていると2行目が輝いて見えました。100nsec!
public: property long long Ticks { long long get (); }このプロパティの値は、0001 年 1 月 1 日午前 00:00:00 以降の経過時間 (100 ナノ秒単位) を表します。
.NET Framework クラス ライブラリ DateTime.Ticks プロパティ
long long(64bit)ですか・・・。流石100ns。
しかし流石に64bitとはいえ100nsじゃ分が悪いだろうと思い計算してみました。
2^64 / (10*1000*1000*60*60*24*365) = 58494.24
5万8500年。long longなので負数を除くと2万9000年ですか。
流石にこれだけあれば人間は絶滅しているでしょうねぇ。
・・・というか.NET Frameworkの寿命(ry
(2007.03.28 14:30 追記)
その後調べてみると、2万9000年はあり得ないようです。
public: static initonly DateTime MinValueここの定数の値は、0001 年 1 月 1 日の 00:00:00.0000000 に相当します。
.NET Framework クラス ライブラリ DateTime.MaxValue フィールド
public: static initonly DateTime MaxValueこの定数の値は、10000 年 1 月 1 日の 00:00:00 よりちょうど 100 ナノ秒タイマ刻み前の 9999 年 12 月 31 日の 23:59:59.9999999 に相当します。
.NET Framework クラス ライブラリ DateTime.MaxValue フィールド
まあ、1万年だとしても.NET Frameworkは(ry
関連する記事はありません
関連記事はYARPP関連記事プラグインによって表示されています。
最近のコメント