勇哥注:
一般我们通过使用windows的任务管理器来分析软件的性能问题。
通过cpu占用率、cpu时间、线程数量、句柄数量几个关键参数来分析软件存在的内在泄露、暴句柄、吃cpu等等问题。
这里我们来研究一下vs自带的性能分析工具,勇哥之前也没有接触过。因此此篇我与大家共同学习。(一)先看下怎么启用vs的性能分析工具。首先,调试菜单选择“性能探查器"。点击 之后会出现下面的界面。这里可以选择分析现有项目,还是分析其它项目或者其它可执行文件。若是分析其它项目我们选择 “更改目标”
今天遇到一个C#的Crash,用windbg打开dump,加载sos之后一看,在4号线程出了一个System.InvalidOperationException,在这个地址上调用!pe。可以看到如下的异常信息:12345Exception object:Exception type: System.InvalidOperationExceptionMessage: The calling thread cannot access this object because a different t
勇哥注:
一个winform窗口,被Show()后是非模态窗口,被ShowDialog()是模态窗口,这个知识是无人不晓的。
但是,有些时候,会产生弹出窗口卡死、阻塞显示、无法置顶的诸多问题。
这一篇和勇哥一起研究一下这些现象。先来看下现象:下面的form是由Show()方法弹出来的。屏幕产生了阻塞显示的现象。看下任务管理器,提示这个弹出winform是“无响应”的。如果你此时去操作调用者的ui上的功能,主程序ui也会跟着阻塞掉,全部失去响应。在网上搜索类似问题,找到一个提问和勇哥遇到问题
Win32下的windows API SendMessage,在用户模式下发送是无效的。现象就是你怎么发送,对方的程序就是收不到。窗口句柄什么的、程序都没问题的。这个时候,你得把C#程序系统用户级别提升为windows管理员级别,才可以解决问题。方法是在你的引导工程这边,引入app.mainifest进行windows账号配置这个文件打开后,是下面这样的:我们只需要按提设置下面这句: <requestedExecutionLevel le
勇哥注:
C#的 DataGridView控件功能强大。许多知识点会常用常忘记,在这里做个记录吧,以方便查询。
阅读此文需要你对此控件有初步的认识。
另外一点,不要以为它只是用于显示数据的表格,要打破这种认知。未完待续。。。。(十) DataGridViewButtonColumn 怎么设置显示内容。2022/11/16 添加:DataGridViewButtonColumn 是按钮项。用下面的代码显示内容。 if&n
勇哥注:
BackgroundWorker是标准的更新软件界面的一个组件。
它可以用于软件启动界面、刷新IO表、刷新界面硬件实时数据、相机的实时采集模式等等这样的应用中。
这些应用的特点就是后台执行一组耗时操作,而ui又需要实时更新后台操作的进度或者结果信息。
此组件常用常忘,因此留文备查。一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能一个程序中需要进行大量的运算,并且需要在运算过程中支持用
此篇是勇哥的随记,很多疑问,和猜测,可能不准确,但是网上也搜不到相应的资料。各位看客如果发现有问题请指正。。。。(图1)今天发现我开发的通用运动软件,在一台比较差的电脑配置上面。cpu占用率为0, cpu时间基本不动。然而在一台i9电脑上面,此电脑比较牛B,是可以用来做深度学习的。同样跑通用运动软件。cpu占用率在2%-4%, cpu时间跟北京时间的秒数差不多快。勇哥一直以为,同样的软件,cpu越牛B,cpu占用率越低。今天刷新了三观。这几个勇哥关注的系统值,关系到你软件的运行效率。比如那个cp
C#的 datagridView控件功能强大其中单元格类型可以是按钮、下拉框、选择框、文本框。做为选择框时 即单元格为 DataGridViewComboBoxColumn 类型。这种类初始化时设置内容是容易的,如下: DataGridViewComboBoxColumn MotionMethodList&nbs
正常的添加根结点的效果如下:但是勇哥使用时是这样的其原因是没有指定显示内容的属性。TreeViewAdv控件的显示内容包括: 选择框、文件夹图标、textbox控件你得先指定这些要显示的对象的属性演示代码:using Aga.Controls.Tree;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using Syste
引言:
勇哥想研究一下C#内嵌脚本的知识。
主要想把运动控制、视觉的一些功能封装成指令,用脚本语言进行调用。
就像机器人的vb语言,它就是把一些功能封装成指令进行调用。例如lua可以扩展nginx的功能,直接访问MySql数据库,达到1000k的访问量级别。另外,Lua也是可以扩展游戏的功能,即做游戏外挂。一、利用LuaInterface调用lua代码1、下载luainterface,这里用的luainterface-1.5.3版本。2、添加 LuaInterface.dll的引用。3