C# 在Windows Phone 8.1上频繁更新GUI失败

C# 在Windows Phone 8.1上频繁更新GUI失败,c#,.net,windows-runtime,winrt-xaml,windows-phone-8.1,C#,.net,Windows Runtime,Winrt Xaml,Windows Phone 8.1,我有一个问题,wp8.1无法经常更新到GUI。 我创建了一个空白页面,两个文本块来显示数字和一个按钮来触发(Receivingstart)。在我的计算机上运行大约140次后,代码将停止更新GUI。这是正确的行为吗?我做错了吗? 非常感谢 private void ReceivingStart(object sender, RoutedEventArgs e) { //AutoResetEvent autoEvent = new AutoResetEvent(false);

我有一个问题,wp8.1无法经常更新到GUI。 我创建了一个空白页面,两个文本块来显示数字和一个按钮来触发(Receivingstart)。在我的计算机上运行大约140次后,代码将停止更新GUI。这是正确的行为吗?我做错了吗? 非常感谢

private void ReceivingStart(object sender, RoutedEventArgs e)
    {
        //AutoResetEvent autoEvent = new AutoResetEvent(false);
        TimerCallback callBack = new TimerCallback(add);
        Timer stateTimer = new Timer(callBack, null, 3000, 200);

    }

private async void add(object state)
    {
        await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            Random r = new Random();
            this.CountNumber.Text = count.ToString(); //GUI update
                            count++;
            var randomNumber = r.Next(0, 300);
            this.info.Text = randomNumber.ToString(); 
        });
    }
    private int count = 1;

你应该使用Dispatcher,这样你就不需要分派到UI线程了。嘿@ThumbMunkees如果textblock被绑定了,我需要它在异步函数定期完成时触发此更新怎么办?问题是你将它设为
async void
。该方法正在被传递并在完成之前再次调用。@NateDiamond嘿,我现在在侦听器中添加了一个heartRadioQueue.Enqueue(nummer),并运行一个dispatchTime以显示在GUI(绑定的ObserCollec.)上,然后将其出列,我拿走异步并等待。它仍然失败。困难的是没有例外,这让我不知道什么是真正的失败。