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

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

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

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

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

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

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

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

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

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

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

C#项目修改默认启动权限为管理员权限

在运行C#桌面程序的时候发现,当其安装在D盘的时候能够正常运行,但是装在C盘的时候就无法运行了,经过调试发现是缺少权限造成的,如何添加程序启动管理员权限?在VS中,项目右键→属性→安全性→勾选“启用ClickOnce安全设置”勾选保存后,在项目中会出现一个app.manifest的文件打开并将<requestedExecutionLevel level="asInvoker&quo...

Lua语法的代码演示

勇哥注:这里用代码方式演示一下Lua的语法,方便大家快速了解。Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 设计目的 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 Lua 特性 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很...

vs编译时会删除掉bin目录下的某个dll文件,该怎么办?

勇哥注:我们知道,当强制进行重新编译时,vs会删除bin目录的文件重新生成。如果这个时候你的代码不幸有地方编译错误,那么恭喜你,你再也不可能编译成功了,因为此时bin目录下的dll已经都删除了,因为依赖关系,此时你解决了编译错误也没有用。还有一种情况,是某个dll,在vs进行增量编译时,会被vs删除,但是这个dll又不是C#的dll,而是某个c++或者c的dll。这种情况下,会发生运行期报错。要解...

在vs中出现 conflict prevents checkout错误

在vs 的团队管理器中,中出现 conflict prevents checkout错误不要相信网上那些办法。其原因是:1。 要么是你有些更改没有commit2。 要么是你要删除掉未跟踪的文件右键菜单删除/排除 就行了...

类型“Action”在未引用的程序集中定义。必须添加对程序集“netstandard, Version=2.1.0.0, Culture=neu

勇哥注:这种错误,就是你的.net Framework版本低了。貌似这个netstandard2.1.0.0 要求的是.net5.0了。具体.net对应这个netstandard的版本见微软说明:https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-1 看到划线部分,已经明确说明.net...

在 Visual Studio 中使用调试器管理异常

“异常设置” 窗口在 C# 中支持通用异常类型.设置vs>“调试”>“Windows”>“异常设置”搜索OperationCanceledException异常,然后将该异常打勾中断调试器中断时,会显示引发异常的位置。添加或删除添加或删除自定义异常 还原要将异常设置还原为默认值,请选择“将列表还原为默认设置” 继续执行如果使用仅我的代码调试 .NET 或 JavaScript 代...

log4net教程(一)基本应用

勇哥注:log4net通过配置文件,可以有自己的缓存机制,并且可以设置成支持多线程输出。另外还有日志级别和日志轮换功能。输出媒介可以指定文件、数据库等。文件类型可以为ini, log等。在开发软件时,建议还是不要再使用File.Write自己来写磁盘记录log,这样多线程写log时磁盘效率会很感人,并且维护也复杂,还是全部交给开源的log4net吧。下面是配置文件:<?xml version...

C# 含有PropertyGrid控件的对话框,如果操作选择下拉框,则此属性窗口再也关闭不了

C# 的 PropertyGrid是不是用得很爽。但是有一个缺陷一直让勇哥很不爽。当选择项是一个枚举或者List<string>的时候,用户可以点击下拉框进行选择。但是,如果使用这个下拉框,会有很大概率关闭不了这个属性窗体。即你按此窗体的关闭按钮,窗体也无法关闭。整个程序都被卡住了。只能用系统的任务管理器把程序强制关闭了。这种bug只会在推出下拉框的时候出现。怎么看都像是此控件固有的b...

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#版继承Treeview的带按钮的树形控件(带源码)

勇哥注:此控件是继承TreeView控件重写的用户组件,主要特点是可以在节点文本右边添加按钮。按钮本身就是一个Button类,可以设置按钮的显示相关的属性,以及事件等。此控件可以方便提供IO、气缸、轴的测试功能,不用双击弹出另一个窗口做这些事。有效的提升了用户体验。使用方法说明:(1)此控件带一个WpfTreeHelper类,以方便操作控件(2)初始化树时,无论是根结点,还是子节点,都使用AddN...

勇哥谈谈反射的优化技术

这篇文章是关于.Net的反射优化(有效率地使用反射)的技术。文中有翻译不准确、难以理解的内容可在评论出指点或咨询。概述反射(Reflection)是一种非常强大的.Net平台的特性。System.Reflection命名空间下提供了一套丰富的加载和调用程序集和对象的接口,除此之外它还提供了 了运行时动态地检索元数据信息的方法,比如获取属性、字段信息,特性信息等。使用反射确实可以使开发人员的生活变得...

C# 怎么把object转为Tuple类型? 强制类型转换和as的区别?

勇哥注:今天突然发现强制类型转换和as还是有点区别的。比如下面这句会抛异常:其中SACItemRunStatusEnum是一个枚举。ItemRunStatus= (Tuple<SACItemRunStatusEnum, int>)data异常信息如下:无法将类型为 “System.Tuple`2[Samsun.Domain.MotionCard.Common.SACItemRunSt...

.NET程序性能的基本要领

本文提供了一些性能优化的建议,这些经验来自于使用托管代码重写C# 和 VB编译器,并以编写C# 编译器中的一些真实场景作为例子来展示这些优化经验。.NET 平台开发应用程序具有极高的生产力。.NET 平台上强大安全的编程语言以及丰富的类库,使得开发应用变得卓有成效。但是能力越大责任越大。我们应该使用.NET框架的强大能力,但同时如果我们需要处理大量的数据比如文件或者数据库也需要准备对我们的代码进行...

C#的序列化与反序列化并不能对所有数据结构都可以保存读取

勇哥注:C#序列化与反序列化是大家用得非常多的功能。它可以保存C#中的对象,并且可以读回来。但是请注意如果对象中有下面的一些数据结构,它是无法保存或者读取的。(1)接口例如下面的接口ICard, 此时保存是可以的,只是读取时直接报错。public Dictionary<string, ICard> _CardObjectList = new Dictionary<string,...

尼尔森十大原则,用于软件UI交互开发自查的原则

勇哥注:对于软件开发时UI交互方面做得好不好,可由下面原则进自查尼尔森十大原则由毕业于哥本哈根的人机交互学博士Jakob Nielsen发表,Jakob Nielsen对人机交互有很多研究,他提出十大可用性原则,用来评价用户体验的好坏,每个产品设计者都可以根据这十大原则进行自查。(1)系统可见性原则(Visibility of system status)保持界面的状态可见,变化可见,内容可见。让...

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

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

勇哥的wpf小练习:MTV点歌小程序(1)体验一下界面控件布局与winform的不同

勇哥注:微软的.net framework的ui框架有两种框架,一个是winform, 一个是wpf,前者主要特点是事件驱动,后者主要特点是数据驱动。由于wpf在.net core中也是被支持的,并且由于.net core在以后在跨平台的(如手机、平板端)工业软件开发中是主角,我们就可实现鱼和熊掌兼得,即享受wpf也享受.net core。同时,也是为了我们程序员的饭碗长期能端得住,努力持续的把新...

为啥win10安装vs2019, 2020版本,显示 此版本的windows不支持此产品

勇哥安装vs2019时的报错如下:我的系统是win10企业版,但是仍然报windows不支持此产品。官方说明,需要win10内部版本号要高于下面的版本:WIN10的版本至少要在1703或者更高,你系统的版本应该比较低。https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/system-requirements 通过ver指令查看内部...

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

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

C# CreateParams作用和它的副作用

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

WM_CHAR、WM_KEYDOWN和WM_SYSKEYDOWN消息

窗口以击键消息和字符消息的形式接收键盘输入。附加到窗口的消息循环必须包含将击键消息转换为相应字符消息的代码。如果窗口在其客户区显示键盘输入,它应该创建并显示一个插入符号以指示将输入下一个字符的位置。当用户在键盘上键入时,具有键盘焦点的窗口的窗口过程接收按键消息。击键消息是WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN和WM_SYSKEYUP。典型的窗口过程会忽略除WM_KEYD...

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>...

赞美一下VS的C#环境下编辑器的成员联想匹配功能

如下图所示:右边的列表会自动选中和左边名字相似的项目。注意,只要相似度高即可,并非要完全一致,这一点真是神奇。此功能对于书写对象属性赋值,真是尤如神助。VS号称宇宙最强代码编辑器,真不是吹的~~~~--------------------- 作者:hackpig来源:www.skcircle.com版权声明:本文为博主原创文章,转载请附上博文链接!...

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...
会员中心
搜索
«    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