[置顶]python知识导航贴,持续更新

[置顶]C# 语言高级特性知识导航贴,持续更新

[置顶]netMarketing类库: 类库说明

[置顶]本站视觉相关教程整理贴子,持续更新

[置顶]C++相关导航贴,持续更新

[置顶]本站收费服务公告(netMarketing源码,工业自动化行业培训班等)

[置顶]2020年勇哥的机器视觉实验项目清单(大纲)

[置顶]本站连载贴子系列,持续更新中……

[置顶]勇哥的免费视频教程清单

[置顶]勇哥在B站发布的视频清单

[置顶]运动控制专题,持续更新

Task暂停、继续、结束

Task实现暂停、继续、结束。看到这个,有些童鞋可能会想到自动化设备上的“停止”,“开始”按钮。勇哥要说的是,Task的暂停继续只是对于task的调度流程来说的,至于task内部跑的轴的运动逻辑来说,你还得有另外的办法让它同步暂停继续。所以整机控制功能并不是靠线程的挂起与继续就那么容易实现的。代码:几点说明。你可以在return那里下断点,程序最后会取消task的执行,就断在这里了。因为这个是异步...

C# CancellationTokenSource.Token 取消Task后,不能再次运行Task

全网的教程都是教你怎么用CancellationTokenSource.Token取消Task,就是不告诉你取消Task后,再次运行Task, 仍然是取消状态,Task跑不起来。而且你想找下Token有没有复位的方法,结果是没发现。其实,每次使用CancellationTokenSource.Token时都要new一个新的!勇哥实测是可以的,就这么简单!真不知道微软是怎么设计的?!--------...

使用Task.Factory.StartNew传递方法参数遇到的问题

用下面的代码,会发生一个错误。报的错误是FlowItemListP[i]的索引超范围,FlowItemListP.Count的值是3, 但是FlowItemListP[i]居然索引值是3打死都想不到i怎么可能计数到3 for (int i = 0; i < FlowItemListP.Count; i++) { if (FlowItemListP[i].RunModeF ==...

C#的WaitHandle : 管理多线程状态

有时候,我们创建了多线程,需要知道是否都完成了各自的工作。比如说,开启了多线程的下载,如何终止所有的线程并且在确保所有线程都终止之后才继续执行程序的退出呢?public partial class MainWindow : Window { public MainWindow() { InitializeComponent()...

C# ManualResetEvent 类的用法

先说是一下 ManualResetEvent 是一线程用来控制别一个线程的信号。大家可以把它看成 操作系统原理中说到的pv操作如下图所说是 ManualResetEvent 对象起一个信使的作用。ManualResetEvent 对象的两个控制方法。1、this.manualEvent.Reset(); //将事件状态设置为非终止状态,导致线程阻止。2、this.manualEvent.Set()...

MSDN中关于async/await异步编程的说明

先上一段代码,msdn中举得一个例子,勇哥将其改造了一下,如下:using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace ConsoleAppl...

C#4.0的并行库TPL,即Task(三)

C#4.0的并行库TPL,即Task(一)http://www.skcircle.com/?id=1793C#4.0的并行库TPL,即Task(二) http://www.skcircle.com/?id=1798C#4.0的并行库TPL,即Task(三) http://www.skcircle.com/?id=1808C#4.0的并行库TPL,即Task(四) http://www.skcir...

C# .net1.0的异步编程模式APM,net2.0的异步编程模式EAP,net4.0的TPL与TAP模式

.net1.0的异步编程模式APM 缺点是无法取消,也不知道其状态.net2.0的异步编程模式EAP 它是使用事件对APM进行了封装,可以取消和知道执行状态.net4.0 async/await 和TPL 已经成为语言关键字支持.net4.0 TAP 基于任务的异步模式TAP(Task-based Asynchronous Pattern )前三者的的一点重要区别:使用async...

理解C#中的ConfigureAwait

原文:https://devblogs.microsoft.com/dotnet/configureawait-faq/作者:Stephen翻译:xiaoxiaotank静下心来,你一定会有收获。七年前(原文发布于2019年).NET的编程语言和框架库添加了async/await语法糖。自那以后,它犹如星火燎原一般,不仅遍及整个.NET生态,还被许许多多的其他语言和框架所借鉴。当然,.NET也有很...

c#同步上下文SynchronizationContext的作用(二)

接上篇 上篇勇哥写的演示程序中关于SynchronizationContext的post方法的示例,并没有实际意义。再来一个实例:程序三个按钮,我们想按下按钮后访问网页,把其内容赋值给按钮的Text属性第一按钮借助TaskScheduler的方法FromCurrentSynchronizationContext该方法会创建一个SynchronizationContextTaskScheduler实...

c#同步上下文SynchronizationContext的作用(一)

同步上下文的作用,官方解释是:提供在各种同步模型中传播同步上下文的基本功能。同步上下文的工作就是确保调用在正确的线程上执行。官方解释抽象难以理解,摘抄了网上了其它的解释如下:在99.9%的使用场景中,SynchronizationContext仅仅被当作一个提供虚(virtual)Post方法的类, 该方法可以接收一个委托,然后异步执行它。虽 然SynchronizationContext还有...

Async和Await如何简化异步编程

引言C#5.0中async和await两个关键字,这两个关键字简化了异步编程,之所以简化了,还是因为编译器给我们做了更多的工作,下面就具体看看编译器到底在背后帮我们做了哪些复杂的工作的。同步代码存在的问题对于同步的代码,大家肯定都不陌生,因为我们平常写的代码大部分都是同步的,然而同步代码却存在一个很严重的问题,例如我们向一个Web服务器发出一个请求时,如果我们发出请求的代码是同步实现的话,这时候我...

C#异步async/await在WinForm中的使用

WinForm窗体中应用异步WinForm虽然比较老,但是现在还有很多的实际生产项目再用,而且微软在新的.Net core 框架中重新重构了WinForm和WPF,就证明WinForm还是有很大的市场的,微软并没有放弃这项技术,并且将它开源了出来,推陈出新,意义可想而知。以前的WinForm项目大多数是用基础的多线程技术来实现的,或者用线程池将事件扔到并发队列中去异步执行,很少有用async/aw...

C#中CancellationToken和CancellationTokenSource用法

之前做开发时,一直没注意这个东西,做了.net core之后,发现CancellationToken用的越来越平凡了。  这也难怪,原来.net framework使用异步的不是很多,而.net core首推异步编程,到处可以看到Task的影子,而CancellationToken正好是异步Task的一个控制器!所以花点时间做个笔记    CancellationToken  Cancellati...

C#4.0的并行库TPL,即Task(二)

C#4.0的并行库TPL,即Task(一)http://www.skcircle.com/?id=1793C#4.0的并行库TPL,即Task(二) http://www.skcircle.com/?id=1798C#4.0的并行库TPL,即Task(三) http://www.skcircle.com/?id=1808C#4.0的并行库TPL,即Task(四) http://www.skcir...

C# 利用dt.Compute计算表达式的值

代码的功能是计算表达式。比如true and false and true使用的是dataset里面的dt.Compute函数。也是在网上看到还有这种用法。这样计算表达式的值就不用自己写算法了。using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usi...

C#中IDisposable的用法

在Net中,由GC垃圾回收线程掌握对象资源的释放,程序员无法掌控析构函数的调用时机。对于一些非托管资源,比如数据库链接对象等,需要实现IDisposable接口进行手动的垃圾回收。那么什么时候使用Idisposable接口,以及如何使用呢? 一、IDisposable的接口定义如下 public interface IDisposable{ // Summary: // Per...

C#4.0的并行库TPL,即Task(一)

C#4.0的并行库TPL,即Task(一)http://www.skcircle.com/?id=1793C#4.0的并行库TPL,即Task(二) http://www.skcircle.com/?id=1798C#4.0的并行库TPL,即Task(三) http://www.skcircle.com/?id=1808C#4.0的并行库TPL,即Task(四) http://www.skcir...

C#的位数组BitArray

引言:使用这个BitArray是为了方便操作位,在操作IO卡或者运动卡的IO函数的时候,往往返回一个short值,然后需要转二进制后对其中的位进行操作,这个时候BitArray就方便了。C#位数组一、引言如果我们着重处理一个以位为单位的数据时,就可以考虑使用位数组。例如在很多PCI的IO卡中涉及很多的I位的读取以此判断各个开关量的状态,或者设置继电器输出状态时,就会频繁用到位的操作。这种情况C#提...

C#的一款皮肤控件IrisSkin

勇哥注:这是篇转自公众号“HwLib慧兰博”的文章。这个公众号貌似是一个团队在运营,都是工业自动技术相关本文介绍的是皮肤控件IrisSkin,在之前勇哥用的是DotNetBar,这个东西是好是好,只是比较慢。而IrisSkin速度如何,各位可以体验一下。 WinForms由于先天性的缘故,对于酷炫的界面实现起来比较困难。这就导致早期很多公司或者团队都在致力于开发针对WinForms的换肤控件。不...

C#自定义控件中放置的控件随着form宽度变化而变化的问题

如下图所示,自定义控件的form上面从下到下依次是:treeviewtextboxtextboxtextbox当拖动fom右边界调整宽度时,会发现最后一个textbox不会适应form宽度的变化。而它上面的三个控件则可以。当勇哥把它上面的控件复制下来替换它后,就可以自动适应了。这说明有一个textbox的属性在发挥作用,但有趣的是不是dock属性。暂时找不到是什么属性在发挥作用。一直以为只有doc...

C#实现对象的深度复制,可以用于解决文件被占用的问题

勇哥注:在解决“文件被占用”的问题时,有时候除了即时释放资源句柄,还需要使用对象的深度复制,这样就相当于斩断了原对象的占用。==========正文开始===================MemberwiseClone 方法创建一个浅表副本,具体来说就是创建一个新对象, 然后将当前对象的非静态字段复制到该新对象。 如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型, 则复制引用...

bundleRuntime.GetFirstOrDefaultService为空,程序直接退出的问题

如下图所示:bundleRuntime.GetFirstOrDefaultService<>为空,因此程序直接退出。不用怀疑IMainForm有问题。勇哥2020/8/8注:这篇水贴烂尾了,因为勇哥至今仍然不知道这是为什么,只知道是跟类库引用后的冲突有关系。人家封装的东西,出问题了真不好找原因。投降了……未完待续…………--------------------- 作者:hackpig来...

关于C#的“项目依赖项目”

原来的工程只有解决方案Loader、MainForm、netMarketingCore。现在因为需要引入netMarketing、sharClass、UserUI。全部重新编译,发现许多报错,其中有netMarketing中的一些类报引用问题。实际上,那些报错的位置是没有问题的。因此,应该是引用混乱的原因。解决方法是勾选报错的解决方案,然后在“依赖于”下面勾选要依赖的项目,然后选中解决方案根,全部...

未能加载ntdll.pdb

今天调试程序时,发现运行程序没问题,退出程序时出现下面这个报错。未能加载ntdll.pdb调试菜单->选项,然后选择“符号”,勾选“Microsoft符号服务器”,设置下载目录,确定。重新编译运行程序后,会从网上下载各种符号到本地。这个过程比较缓慢。然而,加载符号后,退出程序时还是报异常。跟之前的报错区别是:多了一点信息。因为网上有人发现如果程序写得有问题,也会出现这个报错信息,因此勇哥在想...

关于.appref-ms文件后缀名(clickonce技术)

起因先是看到git shell指向的是一个appref-ms文件。找开目录,它未显示文件后缀名,显示的是一个叫application reference 的文件类型。从来有见过这种类型,于是查了查调查它是一个叫clickonce技术的文件。ClickOnce是微软公司开发的一门用于在网络上发布应用程序的技术 ClickOnce使得用户可以从支持ClickOnce的网页中点击一个链接来运行一个程序...

最终实现的流程图版的MTV工具

勇哥把上一次的流程图版的MTV改了一下,这是最终版,各位看看效果吧。与上一版不同的是如下几点:(1)可以docking,也就是窗体停靠(2)mtv主功能的form是做为一种插件被载入的在下面的演示中,大家看到mtv的搜索功能,是通过流程“搜索歌曲”来完成的。这个搜索功能用流程图来画,也只是作为一种演示而矣。在这个基础上,可以开发视觉相关的代码活动了,以添加视觉相关的工具。源码下载链接:------...

vs2013 C# 怎么能按F12键跳到接口的实现类的对应函数上去

例如下面的WFDesign,它是一个接口IWFHost。 public IWFHost WFDesign = null;如果你在Run上面按F12键,只会跳到接口IWFHost的定义Run上去。这样子是不是让你很恼火呢?^_^那么如何才能跳动接口IWFHost的实现类对应的函数上去呢?如果你是vs2015以上版本,那么你可以 右键->转到实现(快捷键:Ctrl+F12)即可。勇哥用vs201...

C#设置工程的输出路径时 ..\是什么意思?

..\的写法是相对路径。“./”:代表目前所在的目录。“../”:代表上一层目录。以”/”开头:代表根目录。下图中的路径是: ..\..\bin\Plugins\DateServer\表示的是当前目录的上一级的上一级的Plugins\DateServer 目录。...

从oop的角度考虑在C#中什么时候使用static为好呢?

因为勇哥看到一份代码,作者为了方便一个类能被任何其它类随时调用,把这全部成员变与方法都定义为static。感觉很怪异,于是抽点时间仔细考虑了一下为啥这样不妥当,罗列几条如下:是否使用静态,相信大家肯定知道静态与实例方法的调用区别:一个是类型调用,一个是实例调用。个人建议更应该从OOP的角度思考这个问题:什么样的行为是需要具体的对象去执行的,什么样的行为是某一个类型/类别拥有的?举个例子:每个人都有...
会员中心
搜索
«    2024年5月    »
12345
6789101112
13141516171819
20212223242526
2728293031
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864