少有人走的路

勇哥的工业自动化技术网站

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

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

勇哥的免费视频教程清单

勇哥在B站发布的视频清单

深入讨论C#语言的异常机制、使用规范

先引用下异常在功能上的标准说明:

异常是在程序执行期间出现的问题。
C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零。
异常提供了一种把程序控制权从某个部分转移到另一个部分的方式。
C# 异常处理时建立在四个关键词之上的:try、catch、finally 和 throw。

try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。
catch:程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获。
finally:finally 块用于执行给定的语句,不管异常是否被抛出都会执行。
       例如,如果您打开一个文件,不管是否出现异常文件都要被关闭。
throw:当问题出现时,程序抛出一个异常。使用 throw 关键字来完成。

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

勇哥注:

这种错误,就是你的.net Framework版本低了。

貌似这个netstandard2.1.0.0 要求的是.net5.0了。



image.png

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

log4net教程(一)基本应用

勇哥注:

log4net通过配置文件,可以有自己的缓存机制,并且可以设置成支持多线程输出。

另外还有日志级别和日志轮换功能。

输出媒介可以指定文件、数据库等。文件类型可以为ini, log等。

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

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

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 t1 = Task.Factory.StartNew(fun);
                taskList.Add(t1);
            }
            
 
        private void fun()
        {
            OutMsg($"id={Thread.CurrentThread.ManagedThreadId}, 启动时间:{DateTime.Now.ToString("hh:mm:ss:ms")}\n");
            Stopwatch sw1 = new Stopwatch();
            sw1.Start();
            while (true)
            {
               
                Thread.Sleep(5);
                if (sw1.ElapsedMilliseconds > 4000)
                {
                    sw1.Stop();
                    OutMsg($"id={Thread.CurrentThread.ManagedThreadId}, 退出时间:{DateTime.Now.ToString("hh:mm:ss:ms")}\n");
                    break;
                }
            }
        }

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


勇哥今天用vs团队资源管理器“同步”时出现一个不一样的错误。


错误如下:


image.png


vs的输出窗口报告的完整信息如下:

勇哥的C#版继承Treeview的带按钮的树形控件(带源码)

勇哥注:

此控件是继承TreeView控件重写的用户组件,主要特点是可以在节点文本右边添加按钮。

按钮本身就是一个Button类,可以设置按钮的显示相关的属性,以及事件等。

勇哥谈谈反射的优化技术

这篇文章是关于.Net的反射优化(有效率地使用反射)的技术。


文中有翻译不准确、难以理解的内容可在评论出指点或咨询。


概述

反射(Reflection)是一种非常强大的.Net平台的特性。System.Reflection命名空间下提供了一套丰富的加载和调用程序集和对象的接口,除此之外它还提供了 了运行时动态地检索元数据信息的方法,比如获取属性、字段信息,特性信息等。


使用反射确实可以使开发人员的生活变得轻松,但是应该尽可能少地使用它,换句话说,只在必需的情况下使用它。它在很大程度上影响了程序的性能。以下是几种提升反射效率的方法。

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

<< < 1 2 3 4 5 6 7 8 9 10 > >>
«    2026年2月    »
1
2345678
9101112131415
16171819202122
232425262728
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864