经过一个多月,终于发布了秋式广告杀手新版本V2.5了,由于基本上问题很少,所以更新周期就长一些。
这里谈一点这次改动涉及到的内容和知识点:
1: 去掉了最初依赖的Hosts模式,所以对Hosts的增删改代码都去除了。
2: 百度竞价广告的屏蔽,除了原有的百度搜索,增加百度知识页面的广告屏蔽。
3: 增加了一台服务器,提供默认一剑出墙的服务。
4: 针对默认代理功能,经过层层思考,允许软件在不同目录下的时候可以开多个,以监听不同的端口,变成一款多端口代理软件。
下面分享几个升级中,被我记住的知识点:
1:线程的try catch的必要性:
先说下线程异常的危害性:
1:winform程序:线程异常,若未try,会导致软件自动退出。
2:webform程序:线程异常,若未try,会导致应用程序池重启,类似网站重启。
总结:
2: 软件只能启动单个实例的知识点:
有时候,我们只允许软件启动一个实例,所以我们通常会有这么段通用代码检测:
}
}
}
需要有点变化:这次的升级, 需要变成了在不同的目录允许多开,所以,按逻辑,我写下了这么段代码:
}
这里又涉及到两个知识点:
1:调试期的问题:
在调试的时候,默认有个.vshost宿主,导致调试后运行的软件名称为:秋式广告杀手.vshost.exe
我要测试多个不同目录的软件运行,所以在其它目录也运行了软件,问题来了:
调试的进程“秋式广告杀手.vshost.exe”和直接运行的“秋式广告杀手.exe”,是对不上号的。
解决方法:
这时候,只要把:项目-右键属性-调试-启用VS宿主进程的勾去掉就可以了。
2:想当然的错误:
以为Process.GetCurrentProcess()获取出来的当前进程对象,总会和获取进程列表里的同个进程对象一样,所以才有了cp==pro这样的对象比较判断。
实际的错误:
用Process.GetCurrentProcess出来的对象,和循环进程的每一个pro对象都是不等的,所以直接的判断是错误。
网上这样相当然的错误代码有点多:
一开始,我也网上搜了搜,发现好多和我写的相当然的代码一样,网上也有这种用=号判断出错误示例代码,大伙要注意下。
解决方法:
经过本人细心的发现,对于进程,其进程ID是一样的,于是把判断的语句改成:
cp.Id!=pro.Id
通过进程ID来判断是否同一进程。
好了,本节,基本就分享这两个相对被我记住的知识小点。
软件升级:软件重启运行,系统会自动升级。
软件下载地址:http://www.cyqdata.com/download/article-detail-54271
另外,那10关挑战题,到现在还没被完全破关,继续大伙继续给力:开发者基础知识游戏,共10关,欢迎挑战
版权声明:本文原创发表于 博客园,作者为 路过秋天 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。 |
个人微信公众号![]() |
Donation(扫码支持作者):支付宝:![]() |
Donation(扫码支持作者):微信:![]() |
![]() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)