syneffort 2 years ago
parent a3a0cc201b
commit c699009897
  1. 5
      MySolution/ConsoleApp/TelnetSamples/AsyncSocketTelnetClient.cs
  2. 11
      MySolution/ConsoleApp/TelnetSamples/AsyncStreamTelnetClient.cs
  3. 2
      MySolution/SerialComApp/SerialCommApp.resx

@ -50,10 +50,11 @@ namespace ConsoleApp.TelnetSamples
byte[] readBuffer = new byte[1024]; byte[] readBuffer = new byte[1024];
while (true) while (true)
{ {
if (_cts != null && _cts.IsCancellationRequested) //Thread.Sleep(100);
if (_cts.IsCancellationRequested)
break; break;
int bytesRead = _cts != null && _cts.IsCancellationRequested ? 0 : await _socket.ReceiveAsync(readBuffer); int bytesRead = await _socket.ReceiveAsync(readBuffer);
if (bytesRead < 1) if (bytesRead < 1)
{ {
if (sb.Length > 0 && this.MessageCallback != null) if (sb.Length > 0 && this.MessageCallback != null)

@ -9,6 +9,8 @@ namespace ConsoleApp.TelnetSamples
{ {
internal class AsyncStreamTelnetClient : IAsyncTelnetClient internal class AsyncStreamTelnetClient : IAsyncTelnetClient
{ {
private CancellationTokenSource _cts = new CancellationTokenSource();
public event EventHandler<string> MessageCallback; public event EventHandler<string> MessageCallback;
public event EventHandler<Exception> ErrorCallback; public event EventHandler<Exception> ErrorCallback;
@ -25,7 +27,8 @@ namespace ConsoleApp.TelnetSamples
await _client.ConnectAsync(ip, port); await _client.ConnectAsync(ip, port);
_stream = _client.GetStream(); _stream = _client.GetStream();
Task.Run(ReadAsync); _cts = new CancellationTokenSource();
Task.Run(ReadAsync, _cts.Token);
} }
catch (Exception) catch (Exception)
{ {
@ -41,6 +44,10 @@ namespace ConsoleApp.TelnetSamples
byte[] readBuffer = new byte[1024]; byte[] readBuffer = new byte[1024];
while (true) while (true)
{ {
Thread.Sleep(50);
if (_cts.IsCancellationRequested)
break;
int bytesRead = await this._stream.ReadAsync(readBuffer); int bytesRead = await this._stream.ReadAsync(readBuffer);
if (bytesRead < 1) if (bytesRead < 1)
break; break;
@ -95,7 +102,7 @@ namespace ConsoleApp.TelnetSamples
_stream.Close(); _stream.Close();
} }
_cts.Cancel();
_client.Close(); _client.Close();
_client.Dispose(); _client.Dispose();

@ -121,7 +121,7 @@
<data name="portRefreshButton.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="portRefreshButton.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
EQAACxEBf2RfkQAAAsBJREFUaEPt2cnLTXEcx/FrzJCphJ0F2diIbEQokWFnzhClyFB6yEJEyh+gUMaU EAAACxABrSO9dQAAAsBJREFUaEPt2cnLTXEcx/FrzJCphJ0F2diIbEQokWFnzhClyFB6yEJEyh+gUMaU
WdlYWLBRiszjAmFjaUgZMvP+LE6dTp9z7jnnnt990PnUa/N07+/7u/ee3/g06tSpU+efzihswFncxzt8 WdlYWLBRiszjAmFjaUgZMvP+LE6dTp9z7jnnnt990PnUa/N07+/7u/ee3/g06tSpU+efzihswFncxzt8
x1e8xm0cx2oMx1+R7liOG/hdwC9cxXx0Q6dkNp7DdbCIh5iKtqUvjsF1piz9InvQE0EzDPfgOlGFKxiE x1e8xm0cx2oMx1+R7liOG/hdwC9cxXx0Q6dkNp7DdbCIh5iKtqUvjsF1piz9InvQE0EzDPfgOlGFKxiE
IBmKZ3CF03zBt8TfmrmFAag0fXAXrmCcXrMd4zAYUYZgInbjCdx74y6h0sF9BK5QRANxJvKkKxaj2QSw IBmKZ3CF03zBt8TfmrmFAag0fXAXrmCcXrMd4zAYUYZgInbjCdx74y6h0sF9BK5QRANxJvKkKxaj2QSw

Loading…
Cancel
Save