值更改未使用C#Win10 Iot触发

值更改未使用C#Win10 Iot触发,c#,event-handling,gpio,windows-10-iot-core,C#,Event Handling,Gpio,Windows 10 Iot Core,看起来一模一样 我有一个带有win10 IoT(创建者版本)的raspberry pi 2,并有以下C代码: 传感器上的led和quickwatch显示GPIOInvalue在高电平和低电平之间切换。。。所以应该被击中 当我将驱动模式设置为输入后检索驱动模式时。它告诉我它实际上被设置为输入: var dm = pinSensor.GetDriveMode(); 正如链接堆栈溢出问题的评论中所建议的那样。那么我做错了什么?更重要的是:为什么 当Run方法结束时,除非创建了延迟对象,否则 后台应用

看起来一模一样 我有一个带有win10 IoT(创建者版本)的raspberry pi 2,并有以下C代码:

传感器上的led和quickwatch显示GPIOInvalue在高电平和低电平之间切换。。。所以应该被击中

当我将驱动模式设置为输入后检索驱动模式时。它告诉我它实际上被设置为输入:

var dm = pinSensor.GetDriveMode();
正如链接堆栈溢出问题的评论中所建议的那样。那么我做错了什么?更重要的是:为什么

当Run方法结束时,除非创建了延迟对象,否则 后台应用程序结束。通常的做法是异步的 编程将采取如下延迟:


Ref:

是否
GpioController.GetDefault
每次都返回相同的实例,还是每次都构造一个新实例并返回?@LasseV.Karlsen我的
public void Run(IBackgroundTaskInstance taskInstance)
中有它作为局部变量。每次运行时,它总是有54个引脚可用。Raspberry pi 2只有1 gpio,所以我希望每次都是一样的。我在对象中没有看到唯一的ID来验证它是相同的还是其他什么。它是一个后台应用程序,所以我希望它能在后台继续运行。或者我需要一些东西来保持程序的打开和运行吗?您是否添加了
var deferval=taskInstance.GetDeferral()
Run()
?谢谢@RitaHan MSFT这是正确的答案。请将其作为答案发布,以便我可以将其标记为已解决,并奖励您代表分数:)
var dm = pinSensor.GetDriveMode();
var deferval = taskInstance.GetDeferral();