Fork me on GitHub
摘要: WPF下使用进度条也是非常方便的,如果直接采用循环然后给ProcessBar赋值,理论上是没有问题的,不过这样会卡主主UI线程,我们看到的效果等全部都结束循环后才出现最后的值。 所以需要采用线程或者后台方式给进度条赋值的方式,以下通过线程来触发事件触发的方式来实现给进度条赋值。这样就可以模拟我们在实 阅读全文
posted @ 2019-04-10 23:27 黄高林 阅读(1336) 评论(5) 推荐(1) 编辑
摘要: 当本地没有安装Excel,但是又想导出Excel,采用Office插件是行不通的,NPOI是导出Excel的一个开源的插件。在导出Excel后,为了方便阅读,可以才采用自适应列宽的方式使得单元格的宽度和文本的宽度接近。NPOI中工作簿ISheet有自适应列宽的方法,但是其效果列宽还是比单元中文字的宽 阅读全文
posted @ 2019-01-05 01:39 黄高林 阅读(8822) 评论(1) 推荐(0) 编辑
摘要: 基于二进制数据流的序列化和反序列化 此时需要序列化的对象必须要声明为可序列化,只需要在声明类的同时采用关键字Serializable,如下: 以上便可以完成序列化的反序列化的操作。 基于二进制序列化的反序列化的拷贝,C#是基于面型对象的开发语言,自定义声明的类都是采用引用传递的形式,有时候数据的修改 阅读全文
posted @ 2019-01-05 00:37 黄高林 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 开启异步监听,不会导致主线程的堵塞,在服务异常断开后一直检测重新连接服务,成功连接服务后通知各个注册的客户端! #region 检测断线并重连OPC服务 可以强制启动OPC服务程序 /// <summary> /// 提供外部使用 /// 重新连接事件 /// </summary> public e 阅读全文
posted @ 2018-12-26 01:14 黄高林 阅读(526) 评论(2) 推荐(0) 编辑
摘要: /// <summary> /// 将多个实体转换成一个DataTable /// </summary> /// <typeparam name="T"></typeparam> /// <param name="list"></param> /// <returns></returns> publ 阅读全文
posted @ 2018-12-26 00:59 黄高林 阅读(1596) 评论(1) 推荐(0) 编辑
摘要: 主要是以字符串的形式来读取xml,然后通过遍历读取节点,通过节点属性名称获取属性值 /// <summary> /// 初始化OPC参数配置 /// </summary> /// <returns></returns> public static OCPParamsDefine InitOPCPar 阅读全文
posted @ 2018-12-26 00:56 黄高林 阅读(1293) 评论(0) 推荐(0) 编辑
摘要: 最近在做傅里叶变化和巴特沃斯滤波,又要使用到复数。 之前我也有发表过类似复数类的文章,不过当时的写法用起来没有那么方便。不能跟int、float...等数据类型一样使用起来那么方便。 重载部分运算符后使用起来也更加方便、快捷,当然有些运算符是不允许重载的,有些是不能显示重载的。具体那些不能重载,那些 阅读全文
posted @ 2018-08-21 19:14 黄高林 阅读(582) 评论(0) 推荐(0) 编辑
摘要: 枚举中的Descript()描述值,以及枚举值是一种一一对应的关系。我们可以获取其描述值和枚举值,存放到字典中, 在实际的使用中我们就可以轻松的根据枚举值来获取其描述值,也可以通过枚举的描述值来获取其枚举值。 根据枚举值来获取其描述值如下: /// <summary> /// 根据枚举值来获取描述信 阅读全文
posted @ 2018-04-24 14:45 黄高林 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 复数是C#中没有的,不能直接调用的。但是我们可以通过封装,构造自己的复数形式。这里我自己封装了一个Complex类,也不知道写得如何。可能还有一些东西没有考虑。 不过这里包含了复数的基本晕算了了,包括加减乘除、取模运算、计算相位角等!详细信息其直接阅读代码。都包含注释了。 /// <summary> 阅读全文
posted @ 2017-03-24 11:38 黄高林 阅读(6664) 评论(10) 推荐(0) 编辑