UWP 应用程序在通过代码 C# 打开 XAML 开关时丢弃堆栈溢出异常

UWP app drops stack owerflow exception when turning on XAML switch by code C#

我使用拨动开关的 IsOn 属性,当我尝试获取和设置开关的 IsOn 属性 时,它会因 system.stack 溢出异常而崩溃。 如何解决这个问题?或者我可以用其他方法设置拨动开关的状态吗? (Switch1_Toggled 通过人机交互发生,在 turnit 方法之前)

    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();
    }    

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

堆栈溢出是因为堆栈内存中没有足够的空间来存储调用层次结构的无限深度。

删除处理程序中对 turnit 的调用,你应该没问题。