当通过代码C#打开XAML开关时,UWP应用程序会丢弃堆栈功率异常

时间:2017-02-08 20:34:14

标签: c# xaml exception uwp uwp-xaml

我使用切换开关的IsOn属性,当我尝试同时获取并设置开关的IsOn属性时,它只会崩溃system.stack溢出异常。 怎么解决这个?或者我可以用其他方法设置切换开关的状态吗? (在turnit方法之前,Switch1_Toggled通过人工交互发生)

    public void turnit()
    {
        Switch1.IsOn = true;
    }

    public void Switch1_Toggled(object sender, RoutedEventArgs e)
    {
        if(Switch1.IsOn)
        {
            request = "11";
        }
        else
        {
            request = "10";
        }
        SendRequest();
        //ReceiveResponse();
        //statusupdater();
        turnit();
    }    

1 个答案:

答案 0 :(得分:3)

您遇到了无限循环。当您通过Switch1.IsOn = true;切换切换时,它会触发您的处理程序方法Switch1_Toggled,后者又会调用turnit(),而后者又会... {/ p>

发生堆栈溢出,因为堆栈内存中没有足够的空间来存储无限深度的调用heirarchy。

删除对处理程序内turnit的调用,你应该很好。