1 回答

TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊
Visibility是一個 UI 屬性,必須在 UI 線程上設(shè)置。在您的情況下,它將在ConnectionReceived事件處理程序運(yùn)行的同一線程上運(yùn)行(感謝async/await),這可能不是 UI 線程。您應(yīng)該改為Visibility在Dispatcher.RunAsync調(diào)用中設(shè)置 以確保它在 UI 線程上運(yùn)行。
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 關(guān)注
- 187 瀏覽
添加回答
舉報