diff --git a/src/NmeaParser/NmeaDevice.cs b/src/NmeaParser/NmeaDevice.cs
index c65f493..3d7acd2 100644
--- a/src/NmeaParser/NmeaDevice.cs
+++ b/src/NmeaParser/NmeaDevice.cs
@@ -83,9 +83,9 @@ namespace NmeaParser
break;
if (readCount > 0)
{
- OnData(buffer.Take(readCount).ToArray());
+ OnData(buffer, readCount);
}
- await Task.Delay(50);
+ await Task.Yield();
}
});
}
@@ -150,9 +150,9 @@ namespace NmeaParser
///
protected abstract Task CloseStreamAsync(Stream stream);
- private void OnData(byte[] data)
+ private void OnData(byte[] data, int count)
{
- var nmea = System.Text.Encoding.UTF8.GetString(data, 0, data.Length);
+ var nmea = System.Text.Encoding.UTF8.GetString(data, 0, count);
List lines = new List();
lock (m_lockObject)
{