在前一篇文章中,我给大家介绍了,如何基于微软推荐方式使用.NET Core创建Windows服务。我们发现使用这种方式,我们很容易就可以搭建和运行一个Windows服务,但是问题是使用这种方式,代码调试将非常困难。
使用.NET Core创建Windows服务(二) - 使用Topshelf方式
使用.NET Core创建Windows服务(一) - 使用官方推荐方式
创建Windows服务来运行批处理任务或者运行后台任务,是一种非常常见的模式,但是由于云服务(Amazon Lambda, Azure WebJobs以及Azure Functions)的激增,你可能不会经常使用Windows服务了。个人而言,我非常喜欢使用Azure WebJobs, 因为我可以直接编写一个控制台程序,而不需要考虑如何云中运行它,一个批处理文件可以将其装换成一个自动化任务,并且可以保证7*24小时的运行。
PostgresSql开放局域网访问
安装完postgres后,默认只能本机访问数据库,下面通过配置实现局域网内访问postgres数据库。
1、修改配置文件
在安装目录的/data文件夹下,打开pg_hba.conf文件,定位到如下文本。
DLL Hell 浅谈
DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。
在Word中排出漂亮的代码
在Word中展示漂亮的代码,其实本质就是制作一份html文件,复制到Word时会保留其源格式。很多代码编辑器或者IDE都有提供制作html文件的功能,比如CodeBlocks(File -> Export -> As HTML…)。后来我发现Notepad++才是最方便的工具。
Word中标题编号变为竖线处理
排版标题和目录后发现标题变为了竖线,很无奈,看怎么解决(只要标题编号变成非数字编号,利用该方法都能解决)。
- 将光标放在竖线(方块)后,利用方向键(键盘上四个小箭头)左移键,将竖线(方块)变成灰色。
- “ctrl+shift+S”,弹出该应用样式的对话框,点击重新应用数字编号出现。
这种方法解决得不彻底,过一段时间可能问题还会复现。
Word标题自动编号设置
进入word后,点击"多级列表"

选择"定义新的多级列表"

多级列表设置

如果框不是这样的话,应该要点击左下角的"更多"。
C# 跨线程更新UI
消息机制
windows程序消息机制
Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵。这个消息泵让windows程序生生不息。

Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源。这里的while循环使用了GetMessage()这个方法,这是个阻塞方法,也就是队列为空时方法就会被阻塞,从而这个while循环停止运动,这避免了一个程序把cpu无缘无故地耗尽,让其它程序难以得到响应。当然在某些需要cpu最大限度运动的程序里面就可以使用另外的方法,例如某些3d游戏或者及时战略游戏中,一般会使用PeekMessage()这个方法,它不会被windows阻塞,从而保证整个游戏的流畅和比较高的帧速。
定时任务cron表达式详解

示例
| 表达式 | 含义 |
|---|---|
| 0 * * * * ? | 每1分钟触发一次 |
| 0 0 * * * ? | 每天每1小时触发一次 |
| 0 0 10 * * ? | 每天10点触发一次 |
| 0 * 14 * * ? | 在每天下午2点到下午2:59期间的每1分钟触发 |
| 0 30 9 1 * ? | 每月1号上午9点半 |
| 0 15 10 15 * ? | 每月15日上午10:15触发 |
| */5 * * * * ? | 每隔5秒执行一次 |
| 0 */1 * * * ? | 每隔1分钟执行一次 |
| 0 0 5-15 * * ? | 每天5-15点整点触发 |
| 0 0/3 * * * ? | 每三分钟触发一次 |
| 0 0 0 1 * ? | 每月1号凌晨执行一次 |
稳定器三种模式的区别


开机默认跟随模式,或者叫左右跟随模式。

跟随模式横滚、俯仰锁定,水平朝向随握把方向平滑转动。也就意味着,操作者水平转动握杆,相机会缓慢的转动至握把朝向的方向拍摄;操作者俯拍或者仰拍,相机仍然朝最初的俯仰方向拍摄;操作者左右摆动稳定器,相机仍然保持水平方向拍摄。在这个模式下,UP/DOWN键,改变的是相机的俯仰角度。