2021-06-30 14:38:47
先上一段代码,msdn中举得一个例子,勇哥将其改造了一下,如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleAppl...
2021-06-30 09:56:55
C#4.0的并行库TPL,即Task(一)http://47.98.154.65/?id=1793C#4.0的并行库TPL,即Task(二) http://47.98.154.65/?id=1798C#4.0的并行库TPL,即Task(三) http://47.98.154.65/?id=1808C#4.0的并行库TPL,即Task(四) http://47.98.154.65/?id=1815...
2021-06-30 08:27:27
.net1.0的异步编程模式APM 缺点是无法取消,也不知道其状态.net2.0的异步编程模式EAP 它是使用事件对APM进行了封装,可以取消和知道执行状态.net4.0 async/await 和TPL 已经成为语言关键字支持.net4.0 TAP 基于任务的异步模式TAP(Task-based Asynchronous Pattern )前三者的的一点重要区别:使用async...
2021-06-29 21:16:31
现象是这个网络模块已经可以ping通了,但是使用CX-Programmer的下面的连接工具,都无法连接。这里勇哥已经确认网络模块已经设置正确,跳线没问题。很无语。今天再试下,尝试新建工程,选择正确plc型号。网络必须选择Ethernet,如果你选择那个FINS/TCP,则连接不上。设置好网络模块的ip地址和端口号。这个时候选择“在线工作”成功了,你发现已经连接上plc了,现在是“运动模式”!现在你...
2021-06-29 15:01:39
原文:https://devblogs.microsoft.com/dotnet/configureawait-faq/作者:Stephen翻译:xiaoxiaotank静下心来,你一定会有收获。七年前(原文发布于2019年).NET的编程语言和框架库添加了async/await语法糖。自那以后,它犹如星火燎原一般,不仅遍及整个.NET生态,还被许许多多的其他语言和框架所借鉴。当然,.NET也有很...
2021-06-29 14:29:12
接上篇 上篇勇哥写的演示程序中关于SynchronizationContext的post方法的示例,并没有实际意义。再来一个实例:程序三个按钮,我们想按下按钮后访问网页,把其内容赋值给按钮的Text属性第一按钮借助TaskScheduler的方法FromCurrentSynchronizationContext该方法会创建一个SynchronizationContextTaskScheduler实...
2021-06-29 10:10:10
同步上下文的作用,官方解释是:提供在各种同步模型中传播同步上下文的基本功能。同步上下文的工作就是确保调用在正确的线程上执行。官方解释抽象难以理解,摘抄了网上了其它的解释如下:在99.9%的使用场景中,SynchronizationContext仅仅被当作一个提供虚(virtual)Post方法的类,
该方法可以接收一个委托,然后异步执行它。虽
然SynchronizationContext还有...
2021-06-28 20:20:48
引言C#5.0中async和await两个关键字,这两个关键字简化了异步编程,之所以简化了,还是因为编译器给我们做了更多的工作,下面就具体看看编译器到底在背后帮我们做了哪些复杂的工作的。同步代码存在的问题对于同步的代码,大家肯定都不陌生,因为我们平常写的代码大部分都是同步的,然而同步代码却存在一个很严重的问题,例如我们向一个Web服务器发出一个请求时,如果我们发出请求的代码是同步实现的话,这时候我...
2021-06-28 19:26:05
WinForm窗体中应用异步WinForm虽然比较老,但是现在还有很多的实际生产项目再用,而且微软在新的.Net core 框架中重新重构了WinForm和WPF,就证明WinForm还是有很大的市场的,微软并没有放弃这项技术,并且将它开源了出来,推陈出新,意义可想而知。以前的WinForm项目大多数是用基础的多线程技术来实现的,或者用线程池将事件扔到并发队列中去异步执行,很少有用async/aw...
2021-06-28 15:55:45
之前做开发时,一直没注意这个东西,做了.net core之后,发现CancellationToken用的越来越平凡了。 这也难怪,原来.net framework使用异步的不是很多,而.net core首推异步编程,到处可以看到Task的影子,而CancellationToken正好是异步Task的一个控制器!所以花点时间做个笔记 CancellationToken Cancellati...
2021-06-28 13:51:26
C#4.0的并行库TPL,即Task(一)http://47.98.154.65/?id=1793C#4.0的并行库TPL,即Task(二) http://47.98.154.65/?id=1798C#4.0的并行库TPL,即Task(三) http://47.98.154.65/?id=1808C#4.0的并行库TPL,即Task(四) http://47.98.154.65/?id=1815...
2021-06-24 09:01:59
这两个信号是接电机驱动器用的,CW/CCW是双脉冲工作方式,两根线都输出脉冲信号,CW为正转脉冲信号,CCW为反转脉冲信号,通常都是差分方式输出,两信号相位差90度,根据相位超前或滞后来决定旋转方向.脉冲数决定电机转动角度.而方向/脉冲信号是单脉冲的,脉冲信号发出脉冲决定电机转动角度,方向信号就是电平信号,比如,想正转加高电平,想反转加低电平.在电机朝一个方向转动时,此信号保持原有电平不需要改变....
2021-06-22 22:22:11
具体现象是d2210_t_pmove,运动50个脉冲,结果直接走到撞机。相同的程序,在32位的系统下没有问题,但是在x64系统下面有问题。以前勇哥找过雷塞的人过来看过,当时研究了一天,发现是要把某个硬件信号电平禁用一下。今天测试设备再现这个问题,一时想不起来究竟是哪个硬件信号。所以写了个小程序排查研究一下。结果见最后面。using Samsun.Domain.MotionCard.Common.D...
2021-06-17 08:00:10
代码的功能是计算表达式。比如true and false and true使用的是dataset里面的dt.Compute函数。也是在网上看到还有这种用法。这样计算表达式的值就不用自己写算法了。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
usi...
2021-06-15 16:39:15
在Net中,由GC垃圾回收线程掌握对象资源的释放,程序员无法掌控析构函数的调用时机。对于一些非托管资源,比如数据库链接对象等,需要实现IDisposable接口进行手动的垃圾回收。那么什么时候使用Idisposable接口,以及如何使用呢? 一、IDisposable的接口定义如下 public interface IDisposable{ // Summary: // Per...
2021-05-31 19:41:55
C#4.0的并行库TPL,即Task(一)http://47.98.154.65/?id=1793C#4.0的并行库TPL,即Task(二) http://47.98.154.65/?id=1798C#4.0的并行库TPL,即Task(三) http://47.98.154.65/?id=1808C#4.0的并行库TPL,即Task(四) http://47.98.154.65/?id=1815...
2021-05-20 14:10:15
(一)编码器编码器分为绝对值型和增量型增量型编辑器在运动控制中可以在当前位置计数置0,绝对值编码器不可以。1. 编码器输入方式编码器的InMode 即编码器输入方式,1:脉冲+方向信号;2:A、B 相位正交信号这两种方式是根据编码器接线不同而不同。其中AB相位正交信号最为常用。这种方式用于提高分辨率,利用相位差为90度的 A、B信号与原脉冲数相乘(图1) NPN增量型编码器接线(图2) PNP绝对...
2021-05-14 19:02:13
引言:使用这个BitArray是为了方便操作位,在操作IO卡或者运动卡的IO函数的时候,往往返回一个short值,然后需要转二进制后对其中的位进行操作,这个时候BitArray就方便了。C#位数组一、引言如果我们着重处理一个以位为单位的数据时,就可以考虑使用位数组。例如在很多PCI的IO卡中涉及很多的I位的读取以此判断各个开关量的状态,或者设置继电器输出状态时,就会频繁用到位的操作。这种情况C#提...
2021-05-14 14:21:56
(1) 莫妙其妙出现继承的问题图上的类没有继承任何类,但实际上生成的带有继承关系。 解决方法用最笨的方式:删除原有的类,重新画一个就好了。真是奇怪的问题。(2)包是啥东西经过实验,发现包代表一个命名空间。包内部的类、接口都位于同一个命名空间。(3) 出现两个相同的继承的问题如下图所示,很奇怪。应该是UML类图本身的bug吧。解决方法还是删除这个类,重新画一遍就好了。(4)属性和字段的类型指定可以...
2021-05-14 09:47:59
1、进入项目的目录下,点击右键单击【git bash】。2、打开【git bash】的界面。3、在命令下输入【touch .gitignore】创建文件。4、利用文本编辑器打开【.gitignore文件】,# 代表注释。5、#忽略根目录下bin文件夹中的所有文件,【/bin/*表示】。6、#忽略所有.class文件,*.class。7、#不要忽略根目录下bin文件夹中.java文件,!/bin/*...
2021-05-14 08:58:22
一直以来勇哥用git都是用的线上仓库github。现在公司开发的软件因为保密原因,我准备用本地仓库的方式使用git。需要一点经验指导,所以转载一篇文章,以备查。1、Git是什么?一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会...
2021-05-14 08:08:39
这个功能如下图所示:网上的教程用的是旧版excel讲解的,不适用。所以在这里记录一下实现办法。先选中你要产生这种效果的那一列单元格然后点“数据验证”弹出的对话框中选择“序列”再人工把要选择的字符串以逗号分隔填写到“来源”文本框中去。这一步关键进你得人工填写进去,而不是选择单无格中的数据。勇哥就是错在这一步半天整不出来。OK了。--------------------- 作者:hackpig来源:w...
2021-05-12 19:02:50
新建工程,建模项目请相信默认安装的vs2015是肯定有这个“建模项目”的。这时解决方案是空白的,在上面右键选择添加-〉新建项选择UML类图这时出现了编辑窗口,并且工具箱就有了内容。画一个图出来。空白处鼠标右键,“生成代码”然后出现下面这个,如果你点击“否”,我这边看到的是生成失败。如果你点是“是”,可能信息显示生成成功,但是代码在哪里呢? 毛都没得。这里是个很奇怪的坑。于是勇哥先退出工程,打次打开...
2021-05-11 15:29:30
使用VS2013或VS2015生成UML类图 深入浅出UML类图(一)深入浅出UML类图(二)深入浅出UML类图(三)深入浅出UML类图(四)深入浅出UML类图(五)C# 设计模式练手(一):简单类工厂C# 设计模式练手(二):单例模式 设计模式之 面向对象的养猪厂的故事,C#演示(一) 设计模式之 面向对象的养猪厂的故事,C#演示(二) 勇哥谈谈C#中的接口Interface的常用套路...
2021-05-10 16:19:59
最近了解到StarUML比较多,所以写一篇教程供大家参考,不足支持,请见谅。StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj).StarUML官方下载地址: http://staruml.io/download安装教程:安装步骤很简单,省略。注意:付费软件,如需破解网上很多教程,不...
2021-04-30 07:13:40
前言几个星期前去面试C++研发的实习岗位,面试官问了个问题:new与malloc有什么区别?这是个老生常谈的问题。当时我回答new从自由存储区上分配内存,malloc从堆上分配内存;new/delete会调用构造函数/析构函数对对象进行初始化与销毁;operator new/delete可以进行重载;然后强行分析了一下自由存储区与堆的区别。回来后感觉这个问题其实回答得不怎么好,因为关于new与ma...
2021-04-17 20:14:10
机器视觉常见数学公式回顾(一) http://47.98.154.65/?id=1336常见相机标定模式和经验的总结 http://47.98.154.65/?id=1421 手眼标定之9点法 http://47.98.154.65/?id=5882020年勇哥的机器视觉实验项目清单(大纲) http://47.98.154.65/?id=1178EPSON机械手 工具坐标系的标定...
2021-04-07 07:53:39
写代码已经有很长一段时间, 但感觉成长很少,基本是为了功能开发而开发,我相信80%的程序员都一样,基本都是拿网上的开源项目改改改后实现功能就行, 很少会去深入,去思考为什么要这么来实现,所以有了今天的文章,我作为程序员小白鼠把C#中的抽象类学习中的感想跟大家分享一下:什么是抽象类抽象类的应用场景实例代码1.什么是抽象类我先来个百度百科的词条解释吧抽象类往往用来表征对问题领域进行分析、设计中得出的抽...
2021-03-30 16:32:23
这个功能是用于在C#那边用halcon引擎执行程序时的交互性调试用的。下面的主机与端口是指的C#那边的主机与端口。你必须在C#这边用下面这句MyEngine.StartDebugServer(); 开启调试服务器。这个调试服务器默认的地址是: localhost 端口是:57786勇哥感觉指定网络中另一台机器做为服务器也应该是可以的。 private void Form1_Load(object...