![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
csharp
星空你好
知行合一
展开
-
异步和多线程的区别
什么是多线程?多线程是实现异步的一种技术。异步是一种技术功能要求,多线程是实现异步的一种手段。除了使用多线程可以实现,异步I/O操作也能实现。硬盘,显卡这些硬件是可以不消耗CPU资源而自动与内存交换数据的,这也是实现异步的基本条件,当数据交互完成,再触发指定的回调函数,来实现异步之后的同步。多线程和异步操作的异同多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多原创 2020-11-10 23:45:06 · 2077 阅读 · 0 评论 -
基于.NET平台常用的框架整理
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志,日积月累,就能形成一个自己的组件经验库。分布式缓存框架:Microsoft Velocity:微软自家分布式缓存服务框架。Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。Redis:是一个高性能的KV数据库。 它的出现很大程度补偿了Memcached原创 2020-09-14 15:01:56 · 190 阅读 · 0 评论 -
visual studio 2019 +EF+Mysql生成实体数据模型闪退解决方案
因为要为一个旧的应用写扩展,用Code First模式写,需要写很多代码,就想用EF6+MySql DB First模式。捣鼓了一晚上。最终找到解决方案:1) Remove mysql for visualstudio2) Remove mysql connector net3) Install mysql for visualstudio 2.0.54) install mysql connector net 6.10.85) Create a new C# project using原创 2020-07-31 00:46:53 · 2335 阅读 · 0 评论 -
Chrome的Cookie的存放位置及查看方法
Chrome的Cookie存放位置:C:\Users\xxx\AppData\Local\Google\Chrome\User Data\DefaultCookies实际上是一个sqlite数据库文件,可以直接打开查看:Cookie的解密参考这篇文章: https://www.cnblogs.com/lrysjtu/p/4713250.html原创 2020-07-07 22:19:57 · 25052 阅读 · 5 评论 -
c#创建二维码
在Winform中有很多方法创建二维码:利用ThoughtWorks.QRCode.dll,nuget包引用using System;using System.Drawing;using System.Text;using System.Windows.Forms;using ThoughtWorks.QRCode.Codec;namespace QRCodeDemo{ public partial class Form1 : Form { public原创 2020-07-06 23:36:40 · 228 阅读 · 0 评论 -
C#控制台中使用Timer
以前,Timer一般在winform窗体中应用。现在测试使用的Console程序,可以参考如下代码:using System;using System.Timers;namespace TimerDemo{ class Program { static void Main(string[] args) { Timer timer = new Timer(); timer.AutoReset = true原创 2020-07-05 21:03:14 · 1353 阅读 · 0 评论 -
c# System.Timers.Timer实现定时任务示例
c# System.Timers.Timer实现定时任务示例using System;namespace Demo1{ class Program { static void Main(string[] args) { System.Timers.Timer timer = new System.Timers.Timer(); timer.Elapsed += Timer_Elapsed;原创 2020-05-21 18:29:45 · 608 阅读 · 0 评论 -
如何在C#/.NET Core中使用责任链模式
如何在C#/.NET Core中使用责任链模式原文:Chain Of Responsbility Pattern In C#/.NET Core作者:Wade译者:Lamond Lu最近我有一个朋友在研究经典的“Gang Of Four”设计模式。他经常来询问我在实际业务应用中使用了哪些设计模式。单例模式、工厂模式、中介者模式 - 都是我之前使用过,甚至写过相关文章的模式。但是有一种模...转载 2020-05-08 16:55:49 · 379 阅读 · 0 评论 -
C# sqlserver 数据库备份与还原(winform版)
数据库备份与还原的sql语句//数据库备份backup database northwind to disk='c:\dbbackup\northwind.bak';//数据库还原//数据库还原use master;alter database northwind set offline with rollback immediate restore database northwi...原创 2020-03-10 22:49:46 · 1981 阅读 · 1 评论 -
Devexpress通知窗口的简单应用-AlertControl
在做仓储管理系统时,如果仓储物品储量过高,给出提示,这时候可以使用Devexpress的AlertControl控件。AutoFormDelay可以设置通知窗体显示的时间。AlertClick事件可以处理点击通知窗体的操作。具体代码:using System;using System.Drawing;using System.Windows.Forms;using DevExpres...原创 2020-03-08 09:41:32 · 2930 阅读 · 2 评论 -
cefsharp放在应用程序的子目录
做了一个winform项目,用到cefsharp,想把cefsharp的一大堆文件放在应用程序的子目录。解决方案:项目中dll设置为不负责+probing配置参考:https://github.com/cefsharp/CefSharp/issues/601https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/spe...原创 2020-03-01 18:57:50 · 702 阅读 · 0 评论 -
winform 中 Devexpress Charts动态添加数据
参考:Devexpress Charts动态添加数据:https://www.cnblogs.com/zhangruisoldier/p/4226950.htmlDevExpress 图表控件:ChartControl 动态绑定数据https://blog.csdn.net/keenweiwei/article/details/7432314效果图:代码:using Syste...原创 2020-02-06 14:39:05 · 2116 阅读 · 0 评论 -
Cefsharp崩溃,异常代码 e0434352 KERNELBASE.dll错误的解决方法
Cefsharp崩溃,异常代码 e0434352解决方案解决方案:安装Visual C++ Redistributable Packages for Visual Studio 2013下载地址:Visual C++ Redistributable Packages for Visual Studio 2013参考:https://github.com/cefsharp/CefShar...原创 2020-02-04 11:42:45 · 12882 阅读 · 0 评论 -
ABP模块系统学习及使用
ABP模块系统简介参考:ABP中配置的注册和初始化ABP模块系统ABP 源码解析 一. ABP启动ABP框架提供了创建和组装模块的基础,一个模块能够依赖于另一个模块。在通常情况下,一个程序集就可以看成是一个模块。在ABP框架中,一个模块通过一个类来定义,而这个类要继承自AbpModule。模块生命周期事件在一个应用中,abp框架调用了Module模块的一些指定的方法来进行启动和关...原创 2020-02-03 02:29:07 · 1602 阅读 · 0 评论 -
ASP.NET Core WebAPI学习-6
Web API 增删改方法PUT vs PATCHPUT:整体更新/替换资源所有的字段都被重写了,或者是设置为该字段的默认值PATCH: 局部更新使用JsonPatchDocument发送变更的数据,对资源指定的字段进行更新[HttpPut("{employeeId}")]public async Task<IActionResult> UpdateEmployeeFo...原创 2020-02-01 14:38:17 · 1328 阅读 · 0 评论 -
ASP.NET Core WebAPI学习-5
输入验证说到验证,那就需要做三件事:定义验证规则按验证规则进行检查报告验证的错误。在把错误报告给API消费者的时候,报告里并不包含到底是服务端还是API消费者引起的错误,这是状态码的工作。而通常响应的Body里面会包含一组验证错误信息,API消费者可以把这些信息展示给API消费者的用户。定义验证规则想要定义验证规则,我们可以使用ASP.NET Core内置的方式或者使用第三方库。...原创 2020-02-01 14:34:20 · 1832 阅读 · 0 评论 -
ASP.NET Core WebAPI学习-4
查询和搜索数据绑定数据可以通过多种方式来传给API。Binding Source Attributes 会告诉 Model 的绑定引擎从哪里找到绑定源。共有以下六种 Binding Source Attributes:[FromBody] 请求的 Body[FromForm] 请求的 Body 中的 form数据[FromHeader] 请求的 Header[FromQue...原创 2020-02-01 14:27:53 · 1894 阅读 · 0 评论 -
ASP.NET Core WebAPI学习-3
内容协商(Content Negotiation) AutoMapper的使用内容协商是这样一个过程:针对一个响应,当有多种表述格式可用的时候,选取最佳的一个表述。数据格式是json,xml等格式Media Type(媒体类型):- applicaion/json- application/xml输出格式在Startup.cs中定义,当请求的格式与输出的格式不匹配的时候,会返回406 N...原创 2020-02-01 14:23:13 · 807 阅读 · 0 评论 -
ASP.NET Core WebAPI学习-2
使用ControllerApiController特性的作用:ApiController是应用在Controller类,会启用以下行为:要求使用特性路由(Attribute Routing)自动HTTP 400响应推断参数的绑定源Mulitpart/form-data请求推断错误状态代码的问题详细信息CompanyController继承自ControllerBase使用...原创 2020-02-01 14:22:32 · 1480 阅读 · 0 评论 -
ASP.NET Core WebAPI学习-1
Web API学习创建Web API项目打开Visual Studio,首先要选择ASP.NET Core 3.1。这里选择了API这个模板 ,取消使用HTTPS和Docker。查看json配置文件appsettings.jsonappsettings.Development.json注意:您需要知道appsettings.json 和 appsettings.Developmen...原创 2020-02-01 00:04:20 · 2076 阅读 · 0 评论 -
ADO.NET三种模式-连接模式
本文总结了ADO.NET的三种工作模式,数据库连接配置,数据提供程序及数据提供程序工厂,详细讲解了连接模式下的数据查询,增删改,使用存储过程,事务和批量插入数据的方法。原创 2020-01-26 13:41:12 · 1003 阅读 · 0 评论 -
在winform中使用cefsharp.winform嵌入浏览器(含视频教程)
免费视频教程和源码:https://www.bilibili.com/video/av84573813/1. 开始使用CefSharp在Winform中嵌入网页2. 解决重复打开Cefsharp出现崩溃的问题3. 使用本地网页,cefsharp调用javascript代码实现打开CefSharp的调试工具打开本地命令行窗口获取电脑信息关闭窗体4. 把网站打包成window...原创 2020-01-23 13:01:59 · 1147 阅读 · 4 评论 -
一行代码去掉Devexpress弹窗
使用的是.net hook方法:使用代码:using System;using System.Windows.Forms;namespace AlexDevexpressToolTest{ static class Program { /// <summary> /// The main entry point for the...原创 2020-01-22 18:17:02 · 951 阅读 · 0 评论 -
c# winform show和showdialog的区别
winform中show和showdialog的区别在C#中窗口的显示有两种方式:模态显示(showdialog)和非模态显示(show)模态与非模态窗体的主要区别是窗体显示的时候是否可以操作其他窗体。模态窗体不允许操作其他窗体,非模态窗体可以操作其他窗体。模态对话框(ShowDialog)模态显示后,弹出窗口阻止调用窗口的所有消息响应。只有在弹出窗口结束后调用窗口才能继续。在模态窗口“...转载 2020-01-22 09:23:07 · 4048 阅读 · 0 评论 -
“EntityTypeBuilder<Course>”未包含“ToTable”的定义,并且找不到可接受第一个“EntityTypeBuilder<Course>”类型参数的可访问扩展方法“ToTabl
今天学习ASP.NET Core 3.1,碰到上述错误,是因为没有引用Microsoft.EntityFrameworkCore.Relational这个Nuget包,在Nuget中加入这个引用就可以解决原创 2020-01-21 14:28:28 · 2673 阅读 · 1 评论 -
C#判断是否是以管理员权限允许当前应用
private static bool CheckForAdminRights() { string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), string.Format("tfadxp{0}.txt", "80")); try { if (Fil...原创 2020-01-20 18:31:16 · 421 阅读 · 1 评论 -
使用cefsharp在winform中嵌套浏览器,解决程序闪退问题,你也可以做一个红芯浏览器^v^
使用cefsharp在winform中嵌套浏览器简单使用cefsharp在winform中嵌套浏览器在上一节,我们学习了如何简单地在winform中嵌入chromium浏览器,我在使用这个开发项目时,需要点击一个按钮,弹出嵌入浏览器的窗体,出现一个问题,就是第一次点击按钮可以正常打开浏览器,第二次点击就会出现卡壳,山体问题。由于对于chromium这个庞大的程序不太了解,上网搜索相关文章解...原创 2020-01-20 10:58:58 · 1735 阅读 · 0 评论 -
C# Hook 学习使用强大的工具DetnetDetour,处理强签名问题,实现不修改代码破解软件
以前学过Hook不过没有实战,忘得一干二净。今天需要使用一款软件,有反调试,有请签名,但是没有加壳,所以反编译调试很快破解。由于有强签名,所以需要找去除强签名工具,不想以后还这样,所以希望从不修改代码的角度破解试试:找到了一款强大的Hook工具库:https://github.com/bigbaldy1128/DotNetDetour几行代码实现了不修改代码完美破解软件,下面贴上官网给的例...原创 2020-01-20 01:29:41 · 1895 阅读 · 0 评论 -
C#各版本新增加功能(系列文章)
C#各版本新增加功能(系列文章)https://www.cnblogs.com/SavionZhang/category/1485924.html转载 2020-01-19 20:26:06 · 138 阅读 · 0 评论 -
学习C# 哈希表(HashTable)用法
学习C# 哈希表(HashTable)用法1. 哈希表(HashTable)简述在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中keyvalue键值对均为object类型,所以...原创 2020-01-16 00:38:39 · 985 阅读 · 0 评论 -
C# winform 一次只能允许一个应用(使用mutex)
在很多应用程序开发过程中,需要只允许一个程序实例,即使是通过虚拟桌面方式连接过来的,也是只允许一个人运行。下面是实现该功能的代码,注意mutexName 为系统名称,Global为全局,表示即使通过通过虚拟桌面连接过来,也只是允许运行一次。using System;using System.Threading;using System.Windows.Forms;namespace Wi...原创 2020-01-15 20:55:58 · 985 阅读 · 0 评论 -
winform捕获全局异常
在winform中捕获全局异常,其中Application.ThreadException捕获UI线程异常,AppDomain.CurrentDomain.UnhandledException捕获应用程序域内的未处理异常(非UI线程异常),注意如果有一个以上的类似Application.Run(new Form1()) 还是会出现未捕获的异常。using System;using System...原创 2020-01-15 20:41:14 · 399 阅读 · 0 评论 -
观察者模式实践-实现winform 窗体之间传值(事件实现)
事件本身就是观察者模式的一个实现。先总结一下事件的使用:委托类型声明定义发布者类,并声明事件在发布者类中定义触发事件方法定义订阅者类,并注册事件在订阅者类中定义事件处理方法针对事件,.Net Framework提供了一个标准模式,主要在winform中比较常见,区别就是不用自定义委托,使用EventHander委托,因此其步骤是:定义发布者类,并声明事件在发布者类中定义触发...原创 2020-01-14 01:12:54 · 320 阅读 · 0 评论 -
在wpf中利用异步lambda编程,模拟数据库连接,防止界面假死
参考《图解C#》第20章异步编程第五节程序,解决在wpf中连接数据库,界面假死问题。public partial class MainWindow : Window { private bool isConnected = false; public MainWindow() { InitializeComponent(); ...原创 2020-01-14 00:53:25 · 275 阅读 · 0 评论 -
观察者模式实践-实现winform 窗体之间传值
观察者模式的应用:Winform窗体传值观察者模式的概念:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并更新。今天我们就学着用一下这个观察者模式,先想象下这个场景:当一个窗体(主窗体)内的值发生变化时,另外几个窗体内的值也会发生相应的变化。这个最简单的实现方式是,在子窗体类内创建一个公共方法,在主窗体内创建子窗体的实例。当值发生变化时调用子窗体的...原创 2020-01-12 19:25:08 · 543 阅读 · 0 评论 -
Ado.net批量插入数据
采用的是SqlBulkCopy方法:数据库是sql server。示例代码地址:https://gitee.com/Alexander360/LearnAdoNetSqlBulkCopy批量插入的方法如下,包括list转datatable方法:using System;using System.Collections.Generic;using System.Data;using...原创 2020-01-12 15:24:54 · 1259 阅读 · 0 评论 -
Ado.net总结-Connection(武器库地址)
ConnectionConnection概述SqlConnection 类中提供的常用属性和方法如下表所示:属性或方法说明SqlConnection()无参构造方法SqlConnection(string connectionstring)带参数的构造方法,数据库连接字符串作为参数Connectionstring属性,获取或设置数据库的连接串S...原创 2020-01-12 13:08:16 · 276 阅读 · 0 评论 -
Ado.net总结-Command(指挥官)
Command概述在 System.Data.SqlClient 命名空间下,对应的 Command 类为 SqlCommand,在创建 SqlCommand 实例前必须已经创建了与数据库的连接。SqlCommand 类中常用的构造方法如下表所示:构造方法说明SqlCommand()无参构造方法SqlCommand(string commandText,Sq...原创 2020-01-12 12:46:03 · 601 阅读 · 0 评论 -
visual studio 2019 sql server localdb 数据库中文乱码解决方法
今天使用localdb学习asp.net core时,发现写入localdb数据库的中文为乱码,按照网上的方法解决,却无法显示,这里只有用sql语句更改了。参考这个,但我试了不成功,用sql语句更改可以https://www.cnblogs.com/tianfengcc/p/7616725.html执行下面sql语句,Name会正常显示中文CREATE TABLE [dbo].[Stu...原创 2020-01-12 11:50:41 · 3729 阅读 · 1 评论 -
Ado.Net总结
ADO.NET总结ADO.NET 是在 .NET 平台上访问数据库的组件,它是以 ODBC (Open Database Connectivity) 技术的方式来访问数据库的一种技术。ADO.NET常用命名空间:命名空间数据提供程序System.Data.SqlClientMicrosoft SQL ServerSystem.Data.OdbcODBCSy...原创 2020-01-12 10:49:53 · 1576 阅读 · 0 评论