在类库中监测外部窗体是否关闭

一枚大帅哥 软件工程师  2017-11-07 01:14:27
最近做一个工程,需求是这样。
我们封装一个类库的dll文件,直接给其他程序A调用。其他程序A不受我控制
当A调用完我的函数之后,直接关闭A的窗体,程序会崩溃,因为我们这个DLL跟硬件设备有关,必须要卸载设备后才能正常关闭。
解决的办法就是关闭窗体时我的DLL中执行卸载相关内容。

现在的问题是我的类库怎么才能知道外部调用我的那个程序A是否关闭呢?
求大神解答。
...全文
249 11 点赞 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
正怒月神 2017-11-10
引用 6 楼 wuyajungogo 的回复:
[quote=引用 2 楼 starfd 的回复:] 实现IDispose接口啊……
引用 3 楼 hanjun0612 的回复:
2楼正解, IDispose,析构都可以
两位大神,能说具体点吗?[/quote] 上面都回答了,就不赘述了。
  • 打赏
  • 举报
回复
圣殿骑士18 2017-11-10
引用 6 楼 wuyajungogo 的回复:
[quote=引用 2 楼 starfd 的回复:] 实现IDispose接口啊……
引用 3 楼 hanjun0612 的回复:
2楼正解, IDispose,析构都可以
两位大神,能说具体点吗?[/quote]

class a : IDispose
{

]
  • 打赏
  • 举报
回复
http://www.studyofnet.com/news/590.html 关键字查下不就知道什么意思了
  • 打赏
  • 举报
回复
一枚大帅哥 2017-11-10
借贴给分,感谢各位支招
  • 打赏
  • 举报
回复
一枚大帅哥 2017-11-10
IDispose,析构没解决我的问题,析构函数里面写我的逻辑之后,窗体没关闭也会多次执行。我的理解是垃圾回收不仅在关闭时执行,其他时间只要系统认为该回收了都会执行。所以不符合要求 最后用应用程序域的ProcessExit事件解决了问题。
  • 打赏
  • 举报
回复
一枚大帅哥 2017-11-10
引用 2 楼 starfd 的回复:
实现IDispose接口啊……
引用 3 楼 hanjun0612 的回复:
2楼正解, IDispose,析构都可以
两位大神,能说具体点吗?
  • 打赏
  • 举报
回复
一枚大帅哥 2017-11-10
引用 1 楼 xdashewan 的回复:
类库公布一个接口,外部窗体关闭时调用,这不就类似非托管的close嘛
外部窗体不受我控制,不能在里面写代码,我在问题里已经描述了
  • 打赏
  • 举报
回复
你提供一个卸载函数,让A窗口在关闭之前调用这个函数不就可以了吗?
  • 打赏
  • 举报
回复
正怒月神 2017-11-07
2楼正解, IDispose,析构都可以
  • 打赏
  • 举报
回复
实现IDispose接口啊……
  • 打赏
  • 举报
回复
xdashewan 2017-11-07
类库公布一个接口,外部窗体关闭时调用,这不就类似非托管的close嘛
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2017-11-07 01:14
社区公告

让您成为最强悍的C#开发者