- 博客(39)
- 资源 (10)
- 收藏
- 关注
原创 使用mutex做应用程序级互斥注意事项
虽然程序退出时操作系统会回收资源,包括互斥锁,但最佳实践是始终在程序中显式地管理和释放这些资源,以避免潜在的问题。mutex不能作为局部变量,当方法执行完毕后,会被回收。尽量显示的执行mutex.Close();
2024-07-22 14:20:00 143
原创 对于IO密集型编程应该使用异步编程代替多线程。
在做串口应用时,一般采用同步的方式。这样的缺点是用户体验较差,每个操作都需要等待通信完成,工作效率低。后来使用Task解决界面卡顿的问题,但是同时带来了新的问题。对于IO密集型编程的正确姿势是使用异步编程。使用异步编程(Asynchronous Programming)在应用程序开发中有许多好处,尤其是在处理I/O密集型任务(如文件读写、网络通信等)时。总之,异步编程是提高应用程序性能、响应性和可扩展性的重要工具。对于处理I/O密集型任务的应用程序来说,异步编程通常是不可或缺的。
2024-06-18 09:45:40 462
原创 使用Task容易造成程序卡顿
Task虽然方便,据说在多核处理器中有利于提高程序性能。但是使用过程中总是出现莫名奇妙的卡顿,特别是计算机性能不高的时候。多个task偶尔会出现卡顿比较长的时间,才开始执行。不像thread可以立马开始执行。已经在两个项目中遇到类似问题,不知道是我的姿势不对还是哪里出现问题了。
2024-06-14 15:39:35 276
原创 winform表格头总是有残影
找了好久问题,发现ColumnHeadersDefaultCellStyle 里面的BackColor设置了透明,所以会造成残影。将这个颜色改成白色或者其他就好了。
2024-04-26 16:09:37 152
原创 原来winform也可以支持mvvm双向绑定
winform控件有个属性DataBindings,以前从来没有用过,从网上看到只需要设置这个属性就能轻松实现数据绑定。在姓名后面输入文字,在数据验证事件完成后,viewmode数据同步更新,绑定lable后,lable就能自动更新内容。这样就实现了一个简单的viewmode类,简不简单?当然要想实现上面的功能,还需要自定义viewmode类。/// 多少会影响一点性能,大数据处理慎重使用。
2023-11-08 15:57:49 806
原创 使用拼音编程的优缺点
这就需要定义很多缩写的规则,让程序的可读性变差。使用拼音编程和英文编程对于计算机来说,本质上是没有区别的。主要的区别在于对于开发人员是否友好,程序的可读性和可维护性是否优秀。2、拼音编程对于英语水平不高的人来说是一种福利,不需要在定义标识符的时候去反查词典找一个合适的单词。1、拼音编程定义的类库和变量等不容易与系统变量重名,这对于写程序的人来说这非常的便利,不需要担心因为重名造成的困惑。3、拼音编程让逆向工程变的困难,即使反编译出源码,读起来也非常困惑。2、制定详细的命名规范,增加程序的可读性。
2023-10-17 16:51:53 206
原创 使用对象作为参数需要注意不能new
如果在setObject中进行new就会操作obj这个东西不能回传给调用方。原因很简单obj这个变量是个指针,new的时候把指针地址给修改了。
2023-05-24 10:11:38 105 1
原创 .net core WebAPI项目如何增加页面
第一步,增加控制器和视图服务public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); //services.AddControllers();第二步,设置入口点public void Configure(IApplicationBuilder app, IWebHostEnvironment...
2022-02-22 14:02:22 1030
原创 DataGridView的CurrentCell和CurrentRow和SelectedCells不是一回事
一般情况下鼠标选择哪个单元格,CurrentCell就是哪个。但是通过程序设置的当前当前单元格,这个current是不生效。比如:dgvList.Rows[idx].Selected = true;这个时候CurrentRow和SelectedCells都不会改变。
2022-01-24 15:01:52 790
原创 DataGridView设置的DataSource后修改列内容无效
this.dgv_main.DataSource = lst; foreach (DataGridViewRow drow in dgv_main.Rows) { D_Renyuan ren = (D_Renyuan)drow.DataBoundItem; drow.Cells["col_tequan"].Value = EnumHe...
2022-01-24 14:48:31 648
原创 房子不是用来住更不是用来“炒”的
房子既不是用来住,也不是用来“炒”的,房子是用来生活的。生活就是生孩子和活命,这些都需要房子的支撑。房子周边需要有活命的产业,这个才是最关键的。如果是农村房子周边需要有地。如果是城市,周边需要有工作。如果在沙漠里盖一栋再豪华的别墅也没有用,没办法生存。当然,如果你是富二代可以不考虑生活这个问题。...
2022-01-17 09:36:00 229
原创 人工智能是数字的核武器
一旦人工智能出现在网络里面,会出现大量的复制自身智慧,超越人类只是时间的问题。这种危险比核武器更加不可预估,似乎人类的结局已经不可避免。机械的出现将人类从体力劳动中解放出来,如果现在想去用手去收麦子,估计没有人会雇佣你。也许有人乐观的说,机械可以由人来操作,但是操作机械需要几个人呢?结局是,我们不得不离开土地,去城市谋生。人工智能可以将人类从脑力劳动中解放出来,就算人工智能无意向统一全球,也会让人类失去工作。我们现在已经能够感觉到智能的可怕,跟朋友聊个天,打个电话,商店买个东西,马上就会有相关推销的物品给你
2022-01-12 16:54:23 188
原创 飞行的汽车,飞行的经济
如果实现大范围的飞行汽车,对于能源是个革命性的挑战,对于人类社会来说是一次大的飞跃,GDP肯定能够飞起来。现阶段如果不解决能源问题还是非常致命的,实现全人类的飞行也只能是梦想。...
2022-01-12 16:33:22 92
原创 星球改造计划
星球改造计划,最难的是他的质量,只要质量和地球差不多,就可以改造他的大气成分,让他有足够的氧气和水。可以做一个可以自我复制的机器,这个难度并不大,让他在金星不断的自我复制。这个机器然后吸收空气中的二氧化碳,转换成氧气和碳就行了。...
2021-10-23 17:20:32 149
原创 这个世界更加需要普通人
都说21世纪人才更加重要,但是大家却容易忽略一个事实,那就是这个世界大多数人是普通人。这不是偶然现象,也不是因为人懒惰不进取,这是因为天道。也就是说这是上天的需要,而且非常迫切的需要,所以这个世界才这么多普通人。...
2021-08-10 09:37:26 220
原创 程序员的“良知”是道
良知,就是做事情一定要对的起天地良心。人之初,性本善。每个人一出生,心里就存在良知,这是先贤告诉我们的。虽然现在科学不能证明,但是我个人感觉,这些良知都是写在每个人的基因里的。我们很多时候都会迷茫,但是良知就像罗盘,只要握紧他就不会迷失方向。这可能造物主送给人类最好的礼物。 我们做后台开发的人员,很多代码和逻辑都是看不到的。这更加需要我们依据自己的良知行事,不要怕麻烦,不能偷工减料,你写的每一行代码都是因果。好的代码可以给你带来善缘,坏的代码会给你带来厄运。积善成德,只要养成一个好...
2021-06-22 09:19:18 106
原创 神之意志是什么?他想要做什么?
神是什么样的存在,我们无从考究,也许神是生命体,也许神是宇宙星辰。但是这些并不重要,只要是创造我们出来的存在,我们就当作他是神。 神为什么要
2021-06-02 17:18:08 479
原创 实名与匿名哪个好?该不该保护个人隐私?
人类生活在一个社会中,每个人都应该受到规则的约束,否则社会就乱套了。然而如何约束个人呢?实名制是最基本的要求,如果一个人没有一个唯一的标识,就会造成不受控制。所有的法律、道德对于一个隐形的人是没有任何意义的。然而匿名是每个人心中的渴望,都希望自己是隐形的,而别人的是实名的,这样你可以伤害任何人,而不用担心报复。但是这种愿望是错误的,因为你的愿望会影响别人的权益。引申一点,个人隐私是不是应该受到保护呢?你把自己的信息隐藏起来,对于没有隐藏自己信息的人就是一种不公平。然而,让所有的人都没有隐私,这个又是...
2021-05-25 17:40:48 1006
原创 webservice数据类型不要随便使用
webservice使用keyvalue的时候会出错。还有复杂类型比如下面的类object是不能够获取到值的。建议webservice使用基本数据类型,尽可能使用字符串,然后转json进行处理。[DataContract] public class ResponseModel { /// <summary> /// EnumResponse /// </summary> [DataMember]...
2021-05-20 17:12:30 177
原创 什么是对?什么是错?
一直以为创造与繁荣是对,破坏与孤寂是错。然而为什么创造是对,死亡是错误呢?我就是喜欢死亡与虚无有什么不可呢?貌似唯心论更有说服力,他们本质没什么不对。我心里认为那种状态对,就是对,那种错就是错。如果我认为对,你认为错,那么咱们就是敌对关系。对错就是意识形态的斗争。目前大多数人就是觉得创造和繁荣是幸福是对的,那么创造就是对的。少数人感觉破坏和死亡是对的,因为是少数,所以死亡是错。如果大多数人都觉得死亡和破坏是对的,那么死亡和破坏就是对的。死亡的最终形态就是虚无,而创制的最终形态就是拥挤,那种状态好,那...
2021-05-16 20:11:31 207
原创 人活着的意义
人活着的意义就是存在,存在就有意义。犹如一朵花,一个小动物,一个小石块,他们存在的意义是什么?存在就有意义,缺少了任何东西都不是一个完整的宇宙。任何事务对于宇宙都有意义,只是意义大小不同。人作为万物之灵,拥有灵魂,可以思考,理应关爱万物给他们创造生存空间,建造一个美好的世界,而不应该破坏环境。...
2021-04-12 18:20:01 202
原创 关于js验证事件
控件的验证事件,可以使用keyup代替。每次按键都可以验证,用户体验好。为什么不用keydown或者press。press事件不能检测delete和backspace的,删除的时候不能响应。keydown对于ctrl+v这种方式的粘贴事件不能监控。change事件进行验证在桌面程序是可以的,但是在js中按键不能实时响应changge事件,这是为什么我就不清楚了。...
2021-02-23 10:08:34 133
原创 随遇而安是比树立远大志向更加高级心境?
有限的游戏以取胜为目的,而无限的游戏以延续游戏为目的。有限游戏让你更加专注目标,而失去一些获取收益的机会。随时迎接挑战与机遇,没有目的就没有失败,只要活下去就是胜利。...
2020-10-27 16:14:14 113
原创 必核武器更厉害的武器是生命武器
如果人类掌握了基因技术,可以随意制造生命,那么就可以轻易制造出一种大规模传播的致命病毒。只需要很小的一点病毒,就可以灭绝全人类。好在生命技术十分复杂,否则人类顷刻间就能灭绝。 生命技术虽然恐怖,但是也有很有用的地方,比如我们想要改造火星环境,只需要设计一种生命,能够适应火星环境,并能够不断吐出氧气和水,用不了多久生命不断复制的情况下就可以布满火星,这比往火星运送上万颗核弹去液化两级冰盖,要容易现实的多。...
2020-09-27 17:14:05 125
原创 项目不能太大
一个软件项目如果包含内容太多,每次更新或者升级会影响的面特别大。所以对于不同业务领域的项目要建不同的应用程序来满足,不要一个应用包罗万象。所以要分散系统,分的越散灵活越高,但是太多的系统,开发、管理和对接起来又会非常麻烦,只做出取舍。...
2020-09-01 15:06:56 133
原创 高手注重程序性能,然而大多数程序的死亡不是性能问题
我们写程序的时候总是考虑要占多少内存,怎样提高程序运行效率,这个应该是老程序员的通病,尤其是70和80年代的程序员,在当时的计算机环境下注重这些确实没错。然后现如今,性能已经不是问题,又有各种成熟的程序框架,只要设计的时候稍加注意,就不至于因为性能问题造成项目失败。 造成项目失败的大多数技术问题是逻辑上的错误,或者缺陷,功能上的缺失等。据我个人经验,90%的bug都是程序员的粗心、逻辑不清楚或者偷工减料等等,造成代码质量的不可靠,最终系统非常不稳定。为了让系统稳定,我们会做出取舍,可能砍掉一...
2020-08-22 16:14:25 169
原创 涉及浮点计算的地方一定要截取小数位
虽然不知道啥原因,今天遇到一个奇怪问题。89/10F结果是8.899999。最终分析可能和内存中的数据有关。以后涉及浮点计算就记得处理小数位数。
2020-08-18 16:37:15 169
原创 查看应用程序是32位还是64位
打开vs命令窗口,输入dumpbin /headers 【文件路径】需要注意的是,any Cpu也显示machine (x86), Application can handle large (>2GB) addresses是关键区别。FILE HEADER VALUES 14C machine (x86) 3 number of sections 96E30CC7 time date stamp...
2020-08-18 15:55:05 466
原创 IIs7上传文件大小光设置web.config还不行
打开你系统盘(我是C盘),找到 C:\Windows\System32\inetsrv\config\schema目录,该目录下有一个IIS_schema.xml修改这个:<attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" />"单位byte
2020-07-01 14:21:10 151
原创 SqliteConnection和SqliteDataReader不能够自动释放内存
使用SqliteConnection和SqliteDataReader进行数据查询的时候发现内存无限制增长,即使调用了SqliteDataReader.Asyncdispose和SqliteConnectionDispose也米有用。后来发现强制内存回收可以解决问题。在dispose后增加 GC.Collect(); GC.WaitForPendingFinalizers();就OK了。...
2020-06-13 11:41:18 718
原创 月球应该是人工制造的
日全食,是因为存在一种神奇的对称性。太阳的直径是月亮的400倍,而它距地球的距离正好也是月亮的400倍。结果,当月亮完全处于地球和太阳之间时,对那些完全处于月亮阴影中的人来说,太阳的表面便被完全遮挡了。太阳变成了黑色,只留下一个金色的光环,天空变成了靛青色。 这种现象,在其他天体上是不可能看到的。看火星日食。...
2020-06-01 13:50:29 332
原创 大道致简
什么平衡宇宙、什么量子效应、什么宇宙膨胀,也许只是我们想多了,或者计算错了。如果宇宙是自然而生,它不应该太过复杂,往简单里想想,也许更容易找到答案!
2020-05-28 09:05:12 204
原创 永生不再遥不可及
如果可以把自己的记忆和思维模式导入计算机,只要技术足够完美,能够模拟人类的思维就可以实现另外一种永生。如果可以将记忆导入一个空白的肉体,那么人类就可以复活。程序员加油吧,实现长生不老的日子到了。...
2020-05-19 10:56:40 201
原创 swagger文档首字母小写的问题
public void ConfigureServices(IServiceCollection services) { services.AddMvc() .AddJsonOptions(options => options.JsonSerializerOptions.PropertyNamingPolicy=null);//JSON首字母小写解决 ...
2020-05-09 17:00:54 1803
超级简单Winform实现MVVM架构
2022-10-21
文件同步工具
2012-03-06
flashData .net的数据库访问控件,附源码
2007-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人