1 回答

TA貢獻1794條經(jīng)驗 獲得超8個贊
Visibility是一個 UI 屬性,必須在 UI 線程上設置。在您的情況下,它將在ConnectionReceived事件處理程序運行的同一線程上運行(感謝async/await),這可能不是 UI 線程。您應該改為Visibility在Dispatcher.RunAsync調(diào)用中設置 以確保它在 UI 線程上運行。
private async void StreamSocketListener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
{
string request;
using(var streamReader = new StreamReader(args.Socket.InputStream.AsStreamForRead()))
{
request = await streamReader.ReadLineAsync();
}
var setVisibility = request.Length > 0;
await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
this.txtBlk_Events.Text = request;
if ( setVisibility )
{
btnSend.Visibility = Visibility.Visible;
}
});
}
- 1 回答
- 0 關注
- 182 瀏覽
添加回答
舉報