私は奇妙な振る舞いに遭遇しました。私は、同じローカルネットワーク内の2台の異なるマシン上の送信者と受信者のサービスを持っているし、このオブジェクトを渡したい UdpClient 上:私はこのようにそれを作成C#DateTimeシリアル化の問題?
public class SendMe
{
public DateTime ExpirationDateUtc { get; set;}
}
:
return new SendMe { ExpirationDateUtc = DateTime.UtcNow };
をして、私はちょうどシリアライズを使用しますにBinaryFormatter 通過:
new BinaryFormatter().Serialize(stream, obj);
return stream.ToArray();
とdeserializ受信側でエーション:
return (SendMe)new BinaryFormatter().Deserialize(stream);
次何が起こるか私が時間差を取得するには、(UtcNowがグローバルタイムスタンプを与えるべきではない?)正確に7秒によります。
2台のローカルネットワークコンピュータでこのような時間差が生じる原因は何ですか?私はWin7とWin10を別々のローカリゼーションで持っています。
両方のPCに同期クロックがあるかどうかを確認しましたか?すなわち、インターネット時間に同期 – Shameen
違いは何ですか? – juharr
明白な質問:この最小の例は実際に問題を再現しますか?第二に、あなたは7秒間にどのように計算されていますか?あなたはシステムAの「10:00:00」をコンソールにログオンし、システムBの「10:00:07」を読みますか?私はそれがそのコードの外か何か間違った "対策"だと強く思っています。あなたがローカル時計と比較すれば...よく... yku know ... –