【发布时间】:2017-04-20 10:23:31
【问题描述】:
我的 TCP 连接有以下代码。我不知道它是否正确异步运行,所以我添加了 Task.Delay(1000) 以便让方法接收结果,将其保存到“结果”,然后将其提供给 UI。
我的问题是,如何将字符串“结果”绑定到我的文本框。一旦“结果”从 Connect(...) 方法获得结果,我希望文本框在 UI 线程中刷新。
public static async Task Connect(string ip, int port) {
result = string.Empty;
DnsEndPoint hostEntry = new DnsEndPoint(ip, port);
Socket _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();
socketEventArg.RemoteEndPoint = hostEntry;
socketEventArg.Completed += new EventHandler<SocketAsyncEventArgs>(delegate (object s, SocketAsyncEventArgs e)
{
result = e.SocketError.ToString();
});
_socket.ConnectAsync(socketEventArg);
await Task.Delay(1000);
}
XAML 代码隐藏
await TCPConnection.Connect(_con.IpAddress,port);
tbConnectionText.Text = "Connectionstatus: " + _con.IpAddress;
tbConnectionStatus.Text =TCPConnection.result;
tbConnectionText.Visibility = Visibility.Visible;
tbConnectionStatus.Visibility=Visibility.Visible;
【问题讨论】:
标签: c# textbox uwp task observable