.NETCore应用程序因StackOverflowException而终止

时间:2017-08-22 22:21:02

标签: c# exception raspberry-pi .net-core

所以,

我正在使用Raspberry Pi模型3b,并且我已成功运行.NetCore v2.0.1。我已经能够构建CoreIOT Hello World项目并在我的Pi上运行它没有问题现在我有一些使用GPIO板创建的自定义硬件,我认为在.NETCore中使用它的唯一方法是使用FileSystem方法/sys/class/gpio我已经构建了一个非常小的应用程序

https://github.com/barkermn01/CanReader

在那里没有多少但是由于某种原因,当我运行应用程序时,我得到的是一条消息Proccess is terminating due to StackOverflowException我不确定是什么导致它没有什么在那里太大了我不会#39;认为只是基本的文件系统阅读。

我唯一能想到的是它不喜欢无限循环

来自:https://github.com/barkermn01/CanReader/blob/master/Program.cs

while (!exiting)
{
    Console.Write("\rCurrent State " + state);
    string input = Console.ReadLine();
    if (input == "exit")
    {
        watcher.Stop();
        exiting = true;
    }
}

和发件人:https://github.com/barkermn01/CanReader/blob/master/GPIOWatcher.cs

public void watch()
{
    GPIO.Value val = Gpio.ReadValue();
    while (val != OldValue)
    {
        val = Gpio.ReadValue();
        if (Delegate != null)
        {
            Delegate.DynamicInvoke();
        }
        Thread.Sleep(10);
    }
}

1 个答案:

答案 0 :(得分:10)

检查访问自己的property getter of GPIO.FullPath

   /// <summary>
    /// Generates the full path for the Filesystem mappings for this GPIO pin
    /// </summary>
    public string FullPath
    {
        get
        {
            return this.Path + "/" + this.FullPath;
        }
    }