私は、ユーザーがコメントを追加できるようにする単純なASMXWebサービスを使用しています。追加されるコメントごとに、行にタイムスタンプを追加します。私が直面している問題は、1秒間隔で2つのコメントを追加すると、両方のタイムスタンプが同じになるということです。コードで使用する代わりにDateTime.Now
、静的クラスを使用して、単体テストを簡単に記述できるようにします。
これが私のTime
クラスです:
public class Time : IDisposable
{
public static DateTime Now;
static Time()
{
ResetToDefault();
}
public static IDisposable Freeze(DateTime dateTimeToFreeze)
{
Now = dateTimeToFreeze;
return new Time();
}
void IDisposable.Dispose()
{
ResetToDefault();
}
private static void ResetToDefault()
{
Now = DateTime.Now;
}
}
Time.Now
のすべてのインスタンスをすべてに置き換えると期待どおりに機能するため、このクラスが原因だと思いますDateTime.Now
。
Time
現在の時刻をリクエストすると、クラスがフリーズし、常に更新されない原因は何ですか?