我遇到的问题是我收到正在写入磁盘的HL7消息。问题是两条消息是在同一毫秒内发送的,我需要确定哪一条消息首先出现,哪一条消息是第二条消息。我已创建此代码来执行此操作,并且它在大多数情况下都有效。有时虽然它失败了,但我得到的时间跨度对象的ticks值为零。
DirectoryInfo d_messages = new DirectoryInfo(ConfigSettings.ReadSetting("AllRecievedHL7"));
d_messages.Refresh();
FileInfo[] messages = d_messages.GetFiles();
DateTime Message1 = messages[0].CreationTime;
DateTime Message2 = messages[1].CreationTime;
TimeSpan t_Test = Message1.Subtract(Message2);
if (t_Test.Ticks > 0)
{
//Message2 arrived before Message1
}
else
{
//Message1 arrived before Message2
}
有没有人知道以这种方式确定这一点的方法永远不会失败?
答案 0 :(得分:0)
由于我写了接收这些消息的接口所以我所做的就是添加睡眠。我在此特定测试运行时设置了一个标志,并在收到的消息之间添加了这一行。对我来说很完美。
Thread.sleep代码(500);