Now.ToFileTime()
.NETの関数を使用して、ファイル名のタイムスタンプを取得するプログラムがあります。このコードが1つのスレッドでのみ呼び出されることを確認したので、同時実行性について心配する必要はありません。
私のメソッドには次のテストコードがあります。
Dim Time As String = Now.ToFileTime()
IO.File.AppendAllText("D:\test.txt", Time & " - " & System.Threading.Thread.CurrentThread.ManagedThreadId().ToString() & vbCrLf)
これにより、test.txtに次のように出力されます。
129899740120622239 - 4
129899740140465735 - 4
129899740140465735 - 4
129899740140465735 - 4
129899740140465735 - 4
129899740160465479 - 4
129899740160465479 - 4
129899740160621727 - 4
129899740160621727 - 4
したがって、タイムスタンプが2回以上繰り返されていることがわかります。たまにユニークなものを手に入れますが、それほど頻繁ではありません。このメソッドを呼び出すたびに、一意の時間を取得するべきではありません。すべてが少なくとも数ミル離れています。私はそれを順番に呼び出すだけではありません(しかし、それでも私は異なる時間を取得することを期待します)。