- 博客(22)
- 资源 (89)
- 收藏
- 关注
原创 C#编程,资源加锁Lock避免多线程时同时操作同一变量造成数据错误的简单用法。
lock 的目的:不想在自己使用的时候别人也使用这段代码。体现在多线程情况下,只允许当前线程执行该代码区域,其他线程等待直到该线程执行结束;这样可以多线程避免同时使用某一方法造成数据混乱。一般定义如下:private static readonly object obj = new object();lock(obj){'''代码块}用法当我们使用线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待。但当不同的线程都需要访问某个资源的时候,就需要同步机制了。
2020-08-27 15:30:35 5949
原创 VS编程,快速折叠或者展开代码到 #region 级别的设置方法。
在代码比较多的文档中,使用#region进行分功能的区分折叠是一个方便的方法。如果文档中含有很多个#region标签,想一次全部折叠或者展开,有时是必要的。这里给出一种设置方法,适用于VS2019,其它VS版本请自己验证。1、工具、选项2、文本编辑器,c#3、折叠#region4、使用快捷键ctrl+M+O 折叠到 #region快捷键是ctrl+M+L展开到 #region...
2020-08-26 18:32:55 9929
原创 WPF编程,实现倒影或者说文字镜像的一种方法。
文章参考网友分享的文章,但原文章链接一时找不到了。后期找到补上。效果代码<Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.micro.
2020-08-26 15:35:48 484
转载 WPF编程,获取图片某一部分的Path路径数据的方法
参考链接:https://blog.csdn.net/dh164645822/article/details/77155701?fps=1&locationNum=8WPF开发界面的时候,用的最多的就是自定义控件模板,开发人员需要根据UI的设计,做出符合要求的自定义控件。但是在一些特殊情况下,UI的设计可能是不规则形状,要做像图①这样一个不规则形状按钮,就需要PS和Blend配合了。1、打开PNG图片的psd源文件,长按Ctrl键,并点击右下角 图层,此时已经选中选区2、切换到“路径”菜
2020-08-26 14:55:10 928
翻译 C#编程,API接口测试工具REST Client
介绍今天给大家介绍一个后端开发辅助的好工具 —— REST Client,插件如其名这就是一个 REST 的客户端插件,把我们的 VSCode 转化为一个 REST 接口测试的利器VSCode 小鸡汤 第01期 - REST Client 简单好用的接口测试辅助工具我们一般都会用 PostMan 来完成接口测试的工作,因为用起来十分简单快捷,但是一直以来我也在寻找更好的方案,一个不用切换窗口多开一个 app 的方案 —— 终于在使用 VSCode 一段时版本间,我找到了 REST Client 插件,
2020-08-25 18:42:55 7809
原创 WPF编程,曲线控件DynamicDataDisplay的使用方法(六)
以下针对最新版本的DLL(0.4.0.0)进行的举例说明。参考链接后台增加数据源 List<Point> point = new List<Point>(); for (int i = 1; i <= 3; i++) { Point point3 = new Point(); point3.X = i; po
2020-08-24 16:33:05 3896 2
原创 WPF编程,曲线控件DynamicDataDisplay的使用方法(五)
以下代码基于0.3版本DLL此处主要写如何在后台代码中,给曲线设置数据源。其中plotter是控件的名字方法一:Point ObservableDataSource<Point> currentDataFrame = new ObservableDataSource<Point>(); Point point = new Point(0, 0); for (int i = 1; i <= 512; i++).
2020-08-24 16:10:19 1951
原创 WPF编程,曲线控件DynamicDataDisplay的使用方法(四)
以下代码在0.3版本上运行没问题。1、曲线随着坐标轴的变化动态显示固定范围内的数据点通俗的说就是曲线实时滚动,因为默认情况下,如果显示的数据随着时间动态变化,那么曲线会在坐标轴上不断的被“挤压”在一起,以显示从开始到现在的所有数据。有时只需要动态的查看当前时间点前后固定区间的数据情况 ,这个时候就需要动态的显示固定范围内的曲线。代码如下: ObservableDataSource<Point> currentDataFrame = new ObservableDataSou.
2020-08-24 15:51:53 2082 5
转载 C#编程,雪花算法SnowFlake的简单说明与使用
算法原理SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图:1bit,不用,因为二进制中最高位是符号位,1表示负数,0表示正数。生成的id一般都是用整数,所以最高位固定为0。41bit-时间戳,用来记录时间戳,毫秒级。41位可以表示2^{41}-1个数字,如果只用来表示正整数(计算机中正数包含0),可以表示的数值范围是:0 至 2^{41}-1,减1是因为可表示的数值范围是从0开始算的,而不是1。也就是说41位可以表示2{41}-1个毫秒的值,转化成单位年则是(2
2020-08-19 12:15:11 4225
原创 WPF编程,曲线控件DynamicDataDisplay的使用方法(三)
常用设置1、隐藏右上角的图例plotter.LegendVisible = false;2、隐藏坐标的网格线以下两种写法都可以,个人使用的版本是0.3.0.0 plotter.AxisGrid.Visibility = Visibility.Hidden; plotter.AxisGrid.Remove();3、取消右键菜单plotter.Children.Remove(plotter.DefaultContextMenu);4、禁止鼠标点击坐标时可拖.
2020-08-18 09:38:53 3190
原创 WPF编程,曲线控件DynamicDataDisplay的使用方法(二)
如上图所示:青色为线为固定的数值线,一般可用来显示上下限,或者左右限值。灰色线为十字光标线,跟随鼠标移动而显示,方便读取数值。可定义坐标标题可定义坐标高度、宽度可定义固定数值线的样式代码如下: <d3:ChartPlotter x:Name="plotter"> <d3:ChartPlotter.HorizontalAxis> <!-- 常规刻度[默认显示] Visibility:是否显示刻度轴[.
2020-08-17 19:51:37 2149
原创 WPF编程,曲线控件DynamicDataDisplay的使用方法(一)
DynamicDataDisplay.dll是一个添加动态数据到WPF应用程序交互的可视化控件。它允许创建线图,气泡图,热图和其他复杂的二维图。1、安装右击项目,管理NUGET包,在浏览中查找:DynamicDataDisplay。可以看到已经停止更新比较久了……因为不在维护,此控件似乎只能用于临时展示些小数量的数据,数量多的情况下性能无法保证。除此之外,也可以在网上下载单独的DLL,引入到项目中。2、在XAML中增加名称空间xmlns:d3="http://research.mi.
2020-08-17 19:23:52 3619 4
原创 C#编程,byte[]字节数组常用的一些操作。
一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。换算为十进制,最小值:0 最大值:255 。字节组与位组的转化 //转化为位组 BitArray myBit = new BitArray(binarylist); //更新指定位数的二进制值 myBit.Set(index, value); //再转化为字节组 byte[] Newbyte .
2020-08-17 16:51:22 2186
原创 C#编程,打开指定路径下程序的一种方法。
当我们知道一个程序所在的路径时,想在代码中直接运行它,会使用到这样的功能。System.Diagnostics.Process.Start(@"C:\Program Files\Microsoft Office\Office12\WINWORD.EXE", "e:\\a.txt");有两个参数,第一个是程序的路径,第二个是要不要打开某个指定的文件。获取当前程序的绝对路径的一种方法://获取当前进程的完整路径,包含文件名(进程名)。string str = this.GetType().Ass.
2020-08-15 16:59:50 2584
原创 C#编程,\r,\n,\\r,\\n的区别与转化的一种方法。
var cc = "\r\n"; var ee = "\\r\\n";cc 与 ee 上面这两个是不同的字符。前者是特殊符转义字符,后者是普通字符。方法一、通过替换,普通字符转为特殊字符var dwwdw = ee.Replace("\\r", "\r").Replace("\\n","\n");二、通过对应的ASCII码,转为对应的字符:这里10对应的字符就是 \nvar ccd =(char)int.Parse("10");...
2020-08-15 16:02:24 2538
转载 VS Code插件markdownlint在书写md文件时需要遵守的规范
vscode 直接搜索安装插件 markdownlint当在vscode中书写markdown文本时,不符合规范的内容就会有黄色波浪线来提示及时修正。MD001 - Heading levels should only increment by one level at a time标题级数只能每次扩大一个,也就是说不能隔级创建标题,必须h1-h2-h3…这样MD002 - First heading should be a top level heading文档的第一个标题必须是最高.
2020-08-15 15:55:40 7513
转载 C#编程,字节byte[] 与 2进制字符串转化的一种方法
byte[]转为二进制字符串表示 // byte[]转为二进制字符串表示 byte[] bytesTest = new byte[] { 192, 6 }; string strResult = ""; for (int i = 0; i < bytesTest.Length; i++) { string strTemp = System.Conver
2020-08-15 15:45:52 10953
翻译 VS编程,VS 2019 使用 Web Deploy 将文件发布到远程IIS服务器的一种方法
Visual Studio 2019 使用 Web Deploy 发布远程站点到IIS服务器的方式在开发完项目之后,我们需要把开发的项目发布到指定的服务器上,有两种方式,如下1、把项目发布成文件系统,把已发布的文件系统文件拷贝到iis服务器,然后进行部署网站即可。2、使用Web Deploy快速发布至iis服务器笔者重点介绍第二种方式,即使用Web Deploy快速发布至iis服务器的完整步骤,另外笔者使用的是Windows Server 2019 Standard 系统 作为iis服务器的具
2020-08-13 20:02:26 2185
转载 c#编程,获取USB设备信息的一种方法
对报错的地方,让VS添加必要的引用后,就可以了。using System;using System.Management;using System.Text.RegularExpressions;using System.Collections.Generic; namespace USBHelp{ /// <summary> /// 即插即用设备信息结构 /// </summary> public struct PnPEntityInf
2020-08-13 19:50:44 5056
原创 Socket 阻塞与非阻塞模式的部分说明
阻塞模式Windows套接字可以在阻塞和非阻塞两种模式下执行I/O操作。阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所在的线程会继续运行。简单点说:阻塞就是干不完不准回来,非阻塞就是你先干,我现看看有其他事没有,完了告诉我一声。在阻塞模式的套接字上,调用任何一个Windows Sockets API都会耗费不确定的等待时间。上图所示,在调用recv()函数时,发生在内核中
2020-08-13 18:24:23 285
原创 C#编程,从数组中删除最后一项
比如,有如下数组,想要移除最后一项。string[] deck = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", };使用Take,方法如下:deck = deck .Take(deck .Count() - 1).ToArray();
2020-08-13 11:23:46 7474
原创 C#编程,将十六进制数字转byte[]的两种方法
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));private string name;public string Name{get => name;set => SetField(ref name, value);
2020-08-13 11:21:03 7428
Music-MP3.zip
2024-07-05
WPF_UI_telerik_Dll.zip
2022-05-21
Notepad++运行C#的插件及源码
2022-02-16
Bongo Cat Mver--邦哥猫替身
2022-02-16
WPF日历控件TestMainWindow.zip
2021-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人