使用ProcessExit关闭c#中的硬件设备?
我有一个硬件设备,需要在程序执行结束时卸载,否则它将处于未定义/不稳定/危险状态。这在正常操作期间非常容易,但在任何类型的碰撞或意外情况下,通常都无法正确卸载 搜索时,我发现我可以设置一个事件来在进程退出时清理电路板,或者至少是其中的一小部分:使用ProcessExit关闭c#中的硬件设备?,c#,events,shutdown,C#,Events,Shutdown,我有一个硬件设备,需要在程序执行结束时卸载,否则它将处于未定义/不稳定/危险状态。这在正常操作期间非常容易,但在任何类型的碰撞或意外情况下,通常都无法正确卸载 搜索时,我发现我可以设置一个事件来在进程退出时清理电路板,或者至少是其中的一小部分: public MainForm() { ... AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnProcessExit); ... } static void OnProc
public MainForm()
{
...
AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnProcessExit);
...
}
static void OnProcessExit(object sender, EventArgs e)
{ myHardwareDevice.checkAndPerformSafeShutdown();
}
其中,checkAndPerformSafeShutdown
是本机dll函数调用的包装器,用于清理驱动程序并将所有硬件置于安全状态。但是,这无法通过以下方式编译:
错误CS0120:非静态字段、方法或属性“projectNme.MainForm.myHardwareDevice”需要对象引用
这个事件处理程序的作用域是什么?为什么它与类中的任何其他事件处理程序不同?有什么方法可以让我得到硬件设备的参考吗 将事件处理程序定义为主窗体上的实例方法,您可以访问所有实例变量。是
MyHardwareDevice
类吗?您是否已将MyHardwareDevice
声明为静态?另外--没有回答您的问题,但可能会引发更多问题哦,天哪,我不敢相信我没有注意到“静态”。关闭线程,删除我的帐户:o