メソッド monitorCallback() では、時間をテキスト ファイルに書き込みます。ファイルを書き込んだ後、ファイルの FileInfo を確認して印刷します。
次の結果が得られました。
time = 16/08/2009 14:01:46, mili = 307
time = 16/08/2009 14:01:51, mili = 291
time = 16/08/2009 14:01:56, mili = 291
time = 16/08/2009 14:02:01, mili = 291
time = 16/08/2009 14:02:06, mili = 291
time = 16/08/2009 14:02:11, mili = 291
なぜ時間が変わるのか理解できませんが、ミリ秒は固定されたままです
private Timer monitor;
public Window1()
{
InitializeComponent();
monitor = new Timer(monitorCallback, null, 0, 5000);
}
private void monitorCallback(object state)
{
string path = @"C:\Test.txt";
Stream stream = File.OpenWrite(path);
StreamWriter writer = new StreamWriter(stream);
writer.WriteLine(DateTime.Now);
writer.Close();
FileInfo fileInfo = new FileInfo(path);
Dispatcher.Invoke(DispatcherPriority.Normal,
new Action(delegate
{
Debug.WriteLine( "time = " + fileInfo.LastWriteTimeUtc + ", mili = " +
fileInfo.LastWriteTimeUtc.Millisecond);
}));
fileInfo = null;
}