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

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

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

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

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

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

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

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

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

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

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

C# gdi自定义控件:阀门

勇哥注:阀门控件可用于组态页面,构建自动化逻辑的控制面板。基本套路就是用GDI代码进行绘制。下图是组态页面:下图是阀门控件的绘制效果。它有横向与竖向两种形态。注意多边形的5个点如下:其它没什么好讲的。源码:using System; using System.Collections.Generic; using System.ComponentModel; using System.Draw...

HALCON error #5154: Wrong values for image area in operator get_window_extents

对于使用docking的童鞋来讲, 如果你的窗体中使用了halcon窗体控件, 就可能出现本文所示的错误.这个时候你应该是双击或者拖动了窗体标签吧?! 然后就会出现下面的错误.HALCON error #5154: Wrong values for image area in operator get_window_extents你只有两个选择: 要么找到你的包含halcon窗体控的窗体为啥会出现...

Task.Factory.StartNew为啥同一次添加10几个线程,超过8个后面添加的线程变开始变慢

勇哥描述一下:如下面代码,当循环Task.Factory.StartNew到第9个的时候,会发现要隔约1秒才可以添加第9个,后面的第10,11,12,13,14 都要间格较长时间。如果你把下面代码中的while死循环去掉,则15个线程瞬间添加完成。这是什么原因呢? for (int i = 0; i < 15; i++) { var...

VS团队资源管理器无法同步,错误为:无法拉取,因为本地和远程分支已更改

勇哥今天用vs团队资源管理器“同步”时出现一个不一样的错误。错误如下:vs的输出窗口报告的完整信息如下:已在存储库 D:\xxxx 中本地创建提交 e76d4178 Remote: Enumerating objects: 43, done. Remote: Counting objects: 2% (1/43) Remote: Counting obje...

C# 中常用接口(包括泛型接口)

1、 IComparable接口IComparable接口定义通用的比较方法。由类型使用的IComparable接口提供了一种比较多个对象的标准方式。如果一个类要实现与其它对象的比较,则必须实现IComparable接口。由可以排序的类型,例如值类型实现以创建适合排序等目的类型特定的比较方法。2、 IComparer接口是特定用于Array的Sort和BinarySearch方法,通过实现ICo...

勇哥的C#知识经验圈点:泛型

勇哥注:这个系列的贴子主要是为了培训用(专职自动化设备的C#软件工程师),因此例子的知识范围被限制在行业范围内。C#基础知识在网上是最多的存在,不足主要下面几点:1. 内容零碎,没有大纲来组织2. 什么功能都有讲,就是没有按实际项目的常用程度来组织3. PLC转上位机的人员,很难把PLC的编程思想转到C#编程上来,需要在知识点讲解上对此问题有点拔勇哥的这套贴子会有大纲,主要特点是补足以上几点问题,...

勇哥的C#知识经验圈点:事件

勇哥注:这个系列的贴子主要是为了培训用(专职自动化设备的C#软件工程师),因此例子的知识范围被限制在行业范围内。C#基础知识在网上是最多的存在,不足主要下面几点:1. 内容零碎,没有大纲来组织2. 什么功能都有讲,就是没有按实际项目的常用程度来组织3. PLC转上位机的人员,很难把PLC的编程思想转到C#编程上来,需要在知识点讲解上对此问题有点拔勇哥的这套贴子会有大纲,主要特点是补足以上几点问题,...

勇哥的C#知识经验圈点:委托

勇哥注:这个系列的贴子主要是为了培训用(专职自动化设备的C#软件工程师),因此例子的知识范围被限制在行业范围内。C#基础知识在网上是最多的存在,不足主要下面几点:1. 内容零碎,没有大纲来组织2. 什么功能都有讲,就是没有按实际项目的常用程度来组织3. PLC转上位机的人员,很难把PLC的编程思想转到C#编程上来,需要在知识点讲解上对此问题有点拔勇哥的这套贴子会有大纲,主要特点是补足以上几点问题,...

wpf快速了解(3)MVVM模式,行为绑定

勇哥注:此系列贴子服务于C# winform开发工程师,帮助他们快速了解wpf技术,节省大家的学习成本。因此,这个系列不是讲给初学者听的。我们知道winform是C#的标准ui框架,wpf则是另一种ui框架,随着.net Core的流行,它会是今后的主流选择,我们必须学习它。系列贴子导航:wpf快速了解(1)基础开发环境wpf快速了解(2)事件驱动和数据驱动wpf快速了解(3)MVVM模式,行为绑...

C#程序调用第三dll引起崩溃,但是try无法捕捉到第三方dll的异常

问题:一个第三方的dll,调用它的函数会引起程序崩溃,但是try却无法捕捉到此异常。因为没有Try到异常,那么一个未处理的异常,会导致整个进程终止。这就是程序会崩溃的原因。这个问题,可以参考微软的一篇说明:CLR 完全介绍: 处理损坏状态异常http://msdn.microsoft.com/zh-cn/magazine/dd419661.aspx 勇哥的理解是: 某些第三方的dll不受管理,C#...

WeifenLuo.WinFormsUI.Docking组件的 DockPanel.DockLeftPortion和DockPanel.DockRightPortion到底是什么作用

勇哥直接说答案:DockRightPortion这个属性的含义是:右侧停靠窗体在固定停靠状态下,窗体宽度占停靠面板(DockPanel)的比例。DockRightPortion这个属性的含义是:左侧停靠窗体在固定停靠状态下,窗体宽度占停靠面板(DockPanel)的比例。既然是比率,就是取值0--1,不要填写像素数量。如果你希望用像素数量来计算这个比率,可以这样:mainForm.DockPane...

C# CreateParams作用和它的副作用

勇哥注:当初勇哥使用这段代码是为了启用双缓冲,避免窗口控件过多引起重绘过慢闪烁。因为是引用别人的代码,并不知道它是啥意思。而且时至今天,还发现其有副作用。先来谈谈它的作用窗体和控件的属性CreateParams,通过它你能够很方便的控制窗体或控件诸如边框、最大化、最小化关闭,按钮的隐藏、窗体的模式化,弹窗模式等的一些特性。如: 让窗体的关闭按钮不可用。虽然通过ControlBox 也可让,最大,最...

C# 查找指定窗体的子窗体。

勇哥注:在下面的winfrom中,调用了netMarketing类库的appContainer容器控件把记事本程序嵌入进来。(appContainer容器控件见 http://www.skcircle.com/?id=1930 ) 这个时候,我们如何得到这个记事本编辑区的窗体句柄呢?通过Spy++分析,这个窗体的全部子窗体层级构造如下图所示:(句柄为 0040B84的窗体就是程序主窗体)从中我们发...

C# 实现操作Windows窗口句柄:遍历、查找窗体和控件

C#对Windows窗口或窗口句柄的操作,都是通过 Win32 API 实现的,通过DllImport引入Windows API操作窗口(句柄),可以实现枚举已打开的窗口、向窗口或子窗口(窗口内的控件)发送文本、关闭、键盘按键等各种命令,实现窗口的基本操作。新建Windows帮助类public class WndHelper{},提供窗口相关的操作,并添加引用using System.Runtim...

C#实现三种方式的模拟按键

模拟按键在.Net中有三种方式实现。第一种方式:System.Windows.Forms.SendKeys 组合键:Ctrl = ^ 、Shift = + 、Alt = %模拟按键:A private void button1_Click(object sender, EventArgs e) { textBox1.Focus();...

第三方的增强型树型控件Aga.Controls的介绍总结

第三方的增强型树型控件Aga.Controls是勇哥常用的控件。由于其使用方法常用常忘,这里记录一下以备察。Aga.Controls的扩展能力如下: 自带勾选与图标,图标是可以更换的。 子节点可以拖放换位置,子节点可以拖放成根结点 根点与子结点都可以更名常见的需求主要是要判定节点是根还是子节点,同一级节点有多少等等。演示代码,读树节点全部的信息: /// <summary>...

C#多线程(17):小总结

简介: C#多线程(17):小总结前言本篇内容是小总结和过渡,看完这篇后,就要开始继续学习 C# 多线程中的知识点啦~。前面,经过 16 篇的学习,我们学习了多线程、锁、线程池、任务、同步、异步等知识,还没有使用到 async、await 这些关键字。有同学问,现在随便拉一个开源项目,里面几乎都是 async/await 这些组成;使用了 async/await ,结果比不用更加耗性能了;ASP....

C#多线程系列(3):原子操作

简介: C#多线程系列(3):原子操作知识点竞争条件当两个或两个以上的线程访问共享数据,并且尝试同时改变它时,就发生争用的情况。它们所依赖的那部分共享数据,叫做竞争条件。数据争用是竞争条件中的一种,出现竞争条件可能会导致内存(数据)损坏或者出现不确定性的行为。线程同步如果有 N 个线程都会执行某个操作,当一个线程正在执行这个操作时,其它线程都必须依次等待,这就是线程同步。多线程环境下出现竞争条件,...

C#多线程(4):进程同步Mutex类

简介: C#多线程(4):进程同步Mutex类Mutex 类Mutex 中文为互斥,Mutex 类叫做互斥锁。它还可用于进程间同步的同步基元。Mutex 跟 lock 相似,但是 Mutex 支持多个进程。Mutex 大约比 lock 慢 20 倍。互斥锁(Mutex),用于多线程中防止两条线程同时对一个公共资源进行读写的机制。Windows 操作系统中,Mutex 同步对象有两个状态:signa...

C#多线程(5):资源池限制

简介: C#多线程(5):资源池限制Semaphore、SemaphoreSlim 类两者都可以限制同时访问某一资源或资源池的线程数。这里先不扯理论,我们从案例入手,通过示例代码,慢慢深入了解。Semaphore 类这里,先列出 Semaphore 类常用的 API。其构造函数如下:构造函数说明Semaphore(Int32, Int32)初始化 Semaphore 类的新实例,并指定初始入口数和...

C#多线程(7):手动线程通知

简介: C#多线程(7):手动线程通知区别与示例AutoResetEvent 和 ManualResetEvent 十分相似。两者之间的区别,在于前者是自动(Auto),后者是手动(Manua)。你可以先运行下面的示例,再测试两者的区别。AutoResetEvent 示例:class Program { // 线程通知 private static A...

C#多线程(8):线程完成数

简介: C#多线程(8):线程完成数解决一个问题假如,程序需要向一个 Web 发送 5 次请求,受网路波动影响,有一定几率请求失败。如果失败了,就需要重试。示例代码如下:class Program { private static int count = 0; static void Main(string[] args) {...

C#多线程(9):多阶段并行线程

引用自: https://developer.aliyun.com/article/906607 简介: C#多线程(9):多阶段并行线程前言这一篇,我们将学习用于实现并行任务、使得多个线程有序同步完成多个阶段的任务。应用场景主要是控制 N 个线程(可随时增加或减少执行的线程),使得多线程在能够在 M 个阶段中保持同步。线程工作情况如下:我们接下来 将学习C# 中的 Barrier ,用于实现并行...

C#多线程(10):读写锁

引用一篇文章:https://developer.aliyun.com/article/907006 ReaderWriterLockSlimReaderWriterLock 类:定义支持单个写线程和多个读线程的锁。ReaderWriterLockSlim 类:表示用于管理资源访问的锁定状态,可实现多线程读取或进行独占式写入访问。两者的 API 十分接近,而且 ReaderWriterLockSl...

C# List的深度复制

由于List之间的相等的话,等于是把List的地址给赋值过去了,赋值后的List变化,会改变原有的List,并没有起到备份原始数据的作用,对于没有嵌套的List,可以采用遍历重新赋值的方法去赋值(传递的是值类型,并非引用类型),若List内的数据是一个类的话,赋值的时候需要重新实例化才行。但如果是嵌套的List列表,遍历这种方法就麻烦了很多。因此,常见的对List进行复制克隆的方法,有以下三种:方...

C# 界面定时器控件Timer的回调函数中有问题代码影响ui刷新效率的问题

今天继续研究“多线程读plc内存“时发现一个问题。我弄了一个定时器,以300ms间隔时间,执行读plc的4个内存地址的工作。然后,拖动窗口时明显感觉很卡。timer中写了4条输出信息到控件上的语句。每条输出控件的语句都使用了BeginInvoke方式的委托。 private void timer1_Tick(object sender, EventArgs e) {...

C# 在使用DockPanel时 需要注意的几个小问题

1.建立一个WinForm工程,默认生成了一个WinForm窗体Form1。2.引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll。3.设置Form1窗体属性IsMdiContainer:True。4.工具箱—>右键—>选择项—>.net组件—>浏览—>weiFenLuo.winFormsUI.Docking...

WeifenLuo.WinFormsUI.Docking"的使用如何控制自动停靠窗口的大小

在使用这个控件的时候,估计大家都会碰到 这样一个问题,就是当窗口是自动隐藏的时候,好像出来的大小一般比实际的大,感觉不太美观,有没有什么方法可以控制它的呢,答案是当然有了,其实实现起来也很简单。 [LocalizedCategory("Category_Docking")] [LocalizedDescription("DockConte...

C# weifenluo docking 布局时遇到的一些问题

基础布局网上有的是,不再赘述,在此仅描写一些犄角噶蓝儿,不容易查到,但会遇到的问题:1,假设共3个区域,想让布局显示方式为左侧一个区域,右侧呈上下区域。通过dockpanel.show(参数)逐一show出来,结果却发现可能布局与自己想象的不一致。结果布局可能为上一个区域,左右两个区域的这种布局,图:,解决方案:改变代码show的顺序即可。图:2,点击首页按钮,自动在document区域新增首页。...

C# 勇哥对于Stopwatch进一步了解:精确测量运行时间

一般测量时间间隔使用的是DateTime.Now实例的DateTime.Ticks当前属性,想要精确测量一个操作的运行时间就只能使用Stopwatch类计时了。Stopwatch计时精度取决于硬件,如果安装的硬件和操作系统支持高分辨率性能计数器, 则Stopwatch类将使用该计数器来测量运行时间。,否则,Stopwatch类将使用系统计时器来测量运行时间。测量耗时操作的运行时间:...
会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 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