Ich versuche gerade, Code zu schreiben, der eine Anfrage an ein Gerät senden wird, und dann auf die Antwort zu warten. Das Problem ist, dass die Antwort kein Endezeichen hat, um anzuzeigen, dass die Nachricht vollständig ist, so dass wir nur eine gewisse Zeit warten müssen..NET DateTime-Objekt nicht sehr genau?
Was ich tun möchte, ist die Nachricht senden und warten Sie dann eine gewisse Zeit. Jedes Mal, wenn ein Datenelement ankommt, möchte ich die Wartezeit um weitere 100ms erhöhen, falls weitere Daten folgen. Wenn nach diesem Zeitraum nichts eingeht, wird angenommen, dass die Nachricht vollständig ist. Dies ist der Pseudo-Code kam ich mit:
var waitTime
Function SendData(data)
{
send the request here and then block with the next code
while (waitTime)
{
//wait
}
}
Function RecieveData(data)
{
Assign new data to a buffer
waitTime++
}
Die Senddata und RecieveData Funktionen sind beide auf verschiedenen Threads innerhalb einer Klasse. Ich kodiere das in C#. Ich habe versucht, dies mit einem DataTime-Objekt zu implementieren, aber es scheint nicht sehr genau zu sein, wenn man mit 10/100 Millisekunden arbeitet?
Alle Ratschläge, was wäre der beste Weg, dies zu implementieren, wäre willkommen!
Grüße Adrian
Gibt es einen Grund, warum Sie beschäftigt sind - warten anstatt einfach Sleep zu rufen? –
Diese Antwort (http://stackoverflow.com/questions/4212611/raise-event-in-high-resolution-interval-timer/4213950#4213950) kann von Interesse sein. – JYelton
Siehe: http://blogs.msdn.com/b/ericlippert/archive/2010/04/08/precision-and-accuracy-of-datetime.aspx –