diff --git a/S7.Net/COTP.cs b/S7.Net/COTP.cs index d681026..a7d9fd7 100644 --- a/S7.Net/COTP.cs +++ b/S7.Net/COTP.cs @@ -74,7 +74,7 @@ namespace S7.Net /// COTP DPDU instance public static async Task ReadAsync(Stream stream, CancellationToken cancellationToken) { - var tpkt = await TPKT.ReadAsync(stream, cancellationToken); + var tpkt = await TPKT.ReadAsync(stream, cancellationToken).ConfigureAwait(false); if (tpkt.Length == 0) { throw new TPDUInvalidException("No protocol data received"); @@ -138,7 +138,7 @@ namespace S7.Net /// Data in TSDU public static async Task ReadAsync(Stream stream, CancellationToken cancellationToken) { - var segment = await TPDU.ReadAsync(stream, cancellationToken); + var segment = await TPDU.ReadAsync(stream, cancellationToken).ConfigureAwait(false); if (segment.LastDataUnit) { @@ -151,7 +151,7 @@ namespace S7.Net while (!segment.LastDataUnit) { - segment = await TPDU.ReadAsync(stream, cancellationToken); + segment = await TPDU.ReadAsync(stream, cancellationToken).ConfigureAwait(false); var previousLength = buffer.Length; Array.Resize(ref buffer, buffer.Length + segment.Data.Length); Array.Copy(segment.Data, 0, buffer, previousLength, segment.Data.Length); diff --git a/S7.Net/PlcAsynchronous.cs b/S7.Net/PlcAsynchronous.cs index ada92cf..629ac3b 100644 --- a/S7.Net/PlcAsynchronous.cs +++ b/S7.Net/PlcAsynchronous.cs @@ -24,11 +24,11 @@ namespace S7.Net /// A task that represents the asynchronous open operation. public async Task OpenAsync(CancellationToken cancellationToken = default) { - var stream = await ConnectAsync(); + var stream = await ConnectAsync().ConfigureAwait(false); try { cancellationToken.ThrowIfCancellationRequested(); - await EstablishConnection(stream, cancellationToken); + await EstablishConnection(stream, cancellationToken).ConfigureAwait(false); _stream = stream; } catch(Exception) @@ -41,21 +41,21 @@ namespace S7.Net { tcpClient = new TcpClient(); ConfigureConnection(); - await tcpClient.ConnectAsync(IP, Port); + await tcpClient.ConnectAsync(IP, Port).ConfigureAwait(false); return tcpClient.GetStream(); } private async Task EstablishConnection(NetworkStream stream, CancellationToken cancellationToken) { - await RequestConnection(stream, cancellationToken); - await SetupConnection(stream, cancellationToken); + await RequestConnection(stream, cancellationToken).ConfigureAwait(false); + await SetupConnection(stream, cancellationToken).ConfigureAwait(false); } private async Task RequestConnection(NetworkStream stream, CancellationToken cancellationToken) { var requestData = ConnectionRequest.GetCOTPConnectionRequest(CPU, Rack, Slot); - await stream.WriteAsync(requestData, 0, requestData.Length); - var response = await COTP.TPDU.ReadAsync(stream, cancellationToken); + await stream.WriteAsync(requestData, 0, requestData.Length).ConfigureAwait(false); + var response = await COTP.TPDU.ReadAsync(stream, cancellationToken).ConfigureAwait(false); if (response.PDUType != COTP.PduType.ConnectionConfirmed) { throw new InvalidDataException("Connection request was denied", response.TPkt.Data, 1, 0x0d); @@ -65,9 +65,9 @@ namespace S7.Net private async Task SetupConnection(NetworkStream stream, CancellationToken cancellationToken) { var setupData = GetS7ConnectionSetup(); - await stream.WriteAsync(setupData, 0, setupData.Length); + await stream.WriteAsync(setupData, 0, setupData.Length).ConfigureAwait(false); - var s7data = await COTP.TSDU.ReadAsync(stream, cancellationToken); + var s7data = await COTP.TSDU.ReadAsync(stream, cancellationToken).ConfigureAwait(false); if (s7data.Length < 2) throw new WrongNumberOfBytesException("Not enough data received in response to Communication Setup"); diff --git a/S7.Net/StreamExtensions.cs b/S7.Net/StreamExtensions.cs index 4dd5471..749b915 100644 --- a/S7.Net/StreamExtensions.cs +++ b/S7.Net/StreamExtensions.cs @@ -46,7 +46,7 @@ namespace S7.Net int received; do { - received = await stream.ReadAsync(buffer, offset + read, count - read, cancellationToken); + received = await stream.ReadAsync(buffer, offset + read, count - read, cancellationToken).ConfigureAwait(false); read += received; } while (read < count && received > 0); diff --git a/S7.Net/TPKT.cs b/S7.Net/TPKT.cs index add7239..e3d26f7 100644 --- a/S7.Net/TPKT.cs +++ b/S7.Net/TPKT.cs @@ -61,7 +61,7 @@ namespace S7.Net public static async Task ReadAsync(Stream stream, CancellationToken cancellationToken) { var buf = new byte[4]; - int len = await stream.ReadExactAsync(buf, 0, 4, cancellationToken); + int len = await stream.ReadExactAsync(buf, 0, 4, cancellationToken).ConfigureAwait(false); if (len < 4) throw new TPKTInvalidException("TPKT is incomplete / invalid"); var version = buf[0]; @@ -69,7 +69,7 @@ namespace S7.Net var length = buf[2] * 256 + buf[3]; //BigEndian var data = new byte[length - 4]; - len = await stream.ReadExactAsync(data, 0, data.Length, cancellationToken); + len = await stream.ReadExactAsync(data, 0, data.Length, cancellationToken).ConfigureAwait(false); if (len < data.Length) throw new TPKTInvalidException("TPKT payload incomplete / invalid");