如何确定将订单文件写入磁盘

时间:2016-09-29 14:30:34

标签: c# file datetime timespan hl7

我遇到的问题是我收到正在写入磁盘的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
}

有没有人知道以这种方式确定这一点的方法永远不会失败?

1 个答案:

答案 0 :(得分:0)

由于我写了接收这些消息的接口所以我所做的就是添加睡眠。我在此特定测试运行时设置了一个标志,并在收到的消息之间添加了这一行。对我来说很完美。

Thread.sleep代码(500);