- 博客(289)
- 资源 (5)
- 收藏
- 关注
原创 C#协变
namespace 协变{ public class Animal { public string name; public Animal(string name1) { name = name1; } } public class dog : Animal {...
2020-05-03 21:06:43
341
转载 C#内存管理2
C#内存管理解析前言:对于很多的C#程序员来说,经常会很少去关注其内存的释放,他们认为C#带有强大的垃圾回收机制,所有不愿意去考虑这方面的事情,其实不尽然,很多时候我们都需要考虑C#内存的管理问题,否则会很容易造成内存的泄露问题。尽管.NET运行库负责处理大部分内存管理工作,但C#程序员仍然必须理解内存管理的工作原理,了解如何高效地处理非托管的资源,才能在非常注重性能的系统中高效地处理内存...
2019-10-27 23:52:15
278
转载 c#内存管理
在.net中内存资源可以分为托管资源和非托管资源。托管资源受CLR的管理,非托管资源则不受。1、托管资源托管资源分别存放在“栈”和“托管堆”。“值类型的实例作为局部变量时”和“引用类型的实例的引用”会存放在栈上。“值类型的实例作为类的成员时”和“引用类型的实例”会存放在堆上。当作为方法的参数时,值类型的变量直接拷贝一份, 引用类型拷贝一个指向同一对象的引用副本。...
2019-10-27 23:07:59
369
转载 c# mutex
c# mutex参考地址:http://blog.sina.com.cn/s/blog_68e4d2910100q6uj.html什么是Mutex “mutex”是术语“互相排斥(mutually exclusive)”的简写形式,也就是互斥量。互斥量跟临界区中提到的Monitor很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此...
2019-10-22 14:47:58
2361
原创 await
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp2{ using System; using System.Collections.Generic; ...
2019-10-20 15:53:32
308
转载 windows io
一、 同步I/O和异步I/O在介绍这部分内容之前先来认识下“异步I/O”。 说起异步IO,很容易联想到同步I/O,对于同一个I/O对象句柄在同一时刻只允许一个I/O操作,其原理如下图所示: 显然,当内核真正处理I/O的时间段(T2~T4),用户线程是处于等待状态的,如果这个时间段比较段的话,没有什么影响;倘若这个时间段很长的话,线程就会长时间处于挂起状态。事实上,该线程完全可以利...
2019-02-12 13:59:28
507
转载 bmp数据格式
先区分几个概念:16色和16位色一样吗?不一样!颜色位数,即是用多少位字节表示的值,每一位可以表示0和1两值。通常图片的颜色深度,简称色深,就是用位数来表示的,所以,我通常会看到8位色,16位色,24位色和32位色。而我们在其它地方看到的又是16色,256色,16777216色等等,这些怎么一回事呢? 16色即代表16种颜色,256色即256种颜色,8位色就是用8个位来表示的颜色,即2...
2019-01-24 15:13:08
1063
1
转载 bmp 存图 转换
16位,24位,32位的BMP图片算法是如何运算的 这段代码的作用是将缓冲区里的24位、16位、32位的数据转换成RGB565格式的16位颜色值。if(color_byte == 3) //24位颜色图{ switch ( rgb ) { case 0 : tmp_color = buffer[count]>>3 ;//为什么要右移3位呢,它表示的...
2019-01-17 11:25:41
353
原创 C#和c++互转
https://blog.csdn.net/u011430225/article/details/78675163 下载地址:看起来微软自己也是深受.NET蹩脚的P/Invoke支持的毒害,因此无奈之余发布了P/Invoke Interop Assistant工具,你可以去下面这个链接来下载这个工具:http://download.microsoft.com/download/f/...
2019-01-02 20:30:03
703
转载 C# 指针之美
原文地址:https://www.cnblogs.com/xiaotie/archive/2012/07/06/2579853.html 将C#图像库的基础部分开源了(https://github.com/xiaotie/GebImage)。这个库比较简单,且离成熟还有一段距离,但它是一种新的开发模式的探索:以指针和非托管内存为主的C#程序开发。 我许多项目都是在这个库基础上的开...
2018-12-30 14:20:06
203
转载 C# 指针操作图像
原文地址:https://www.cnblogs.com/lixunwu/articles/6692007.html读取图片时,请参考bolg文章:C#图片的像素格式问题研究 (http://www.cnblogs.com/lixunwu/articles/6691962.html) private unsafe void ProcessFilter(Bitmap imageT) ...
2018-12-30 13:16:18
1984
转载 C#中使用指针
C#为了类型安全,默认并不支持指针。但是也并不是说C#不支持指针,我们可以使用unsafe关键词,开启不安全代码(unsafe code)开发模式。在不安全模式下,我们可以直接操作内存,这样就可以使用指针了。在不安全模式下,CLR并不检测unsafe代码的安全,而是直接执行代码。unsafe代码的安全需要开发人员自行检测。一、Vs2010中开启unsafe code 的方式在方法、类、代码...
2018-12-30 12:01:52
1146
转载 c# 特性
特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。这篇文章绝大部分是按照MSDN来学习的,只是加了一点点自己的东东,官方介绍的很详细,我们就一起来了解一下它的用法。特性具有以下属性: 特性可向程序中添加元数据。元数据是有关在程序中定义的类型的信息。所有的 .NET 程序集都包含...
2018-12-30 09:09:11
593
转载 C# task 取消
1、需求 我们知道task是并行计算的,比如说主线程在某个时刻由于某种原因要取消某个task的执行,我们能做到吗? 当然我们可以做到。 在4.0中给我们提供一个“取消标记”叫做CancellationTokenSource.Token,在创建task的时候传入此参数,就可以将主线程和任务相关联,然后在任务中设置“取消信号“叫做ThrowIfCancellationRequested来等待主线...
2018-12-24 10:27:46
12495
转载 委托本质
前言 委托和事件是c#基础中两个重要的知识,平时工作中也会经常用到。接下来我会写两篇我对委托和事件的理解,欢迎拍砖。 回调函数是一种非常有用的编程机制,许多语言都对它提供了支持。回调函数是一个通过函数指针调用的函数。通常,我们会把回调函数作为参数传递给另一个函数,当某些事件发生或满足某些条件时,由调用者执行回调函数用于对该事件或条件进行响应。简单来说,实现回调函数有如下步骤: 1...
2018-12-23 10:01:42
488
转载 C# beginInvoke
摘要异步这东西,真正用起来的时候,发现事情还是挺多的,最近在项目中用到了异步的知识,发现对它还是不了解,处理起来,走了不少弯路。觉得还是补一补还是很有必要的。MSDN原文地址:https://msdn.microsoft.com/en-us/library/2e08f6yc(v=vs.110).aspx正文.Net framework可以让你异步调用任何方法。为达这样的目的,你可以...
2018-12-23 08:59:33
8074
原创 C# 正则表达式 元字符
C# 正则表达式 元字符 1 . 除了\n以外的任意单个字符符合规则如下:如 a.b下列符合条件a. baaba3b 2 [] 字符组: 表示在字符组中罗列出的字符任意一个。任意取字符组中的一个。-出现在第一位只表示字符- ;a-z - 表示a到z的符号如 a[xyz]b下列符合条件axbaybazb如a[a-z]b下列符合条件azbaxbaab如a[a-...
2018-10-17 17:14:07
337
原创 c# 序列化和反序列化 深拷贝
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Runtime.Serialization.Formatters.Binary;using System.IO;using System...
2018-10-17 00:31:08
758
原创 C# 索引器 扩展方法 new使用
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace new_csharp{ /*public class BaseC{ public int x; public vo...
2018-10-16 16:23:29
564
转载 C#索引器(类似C++ []运算符重载)
说索引器之前先来了解一下属性:它提供灵活的机制来读取、编写或计算某个私有字段的值。 可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。 这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。 class Program { static void Main(string[] args) { ...
2018-10-16 14:38:09
974
转载 跨线程直接更新UI控件汇总
C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常。处理跨线程更新Winform UI控件常用的方法有4种:1. 通过UI线程的SynchronizationContext的Post/Send方法更新;2. 通过UI控件的Invoke/BeginInvoke方法更新;3. 通过BackgroundWorker取代T...
2018-10-14 22:43:17
361
转载 c#如何处理自定义消息
随笔- 1124 文章- 52 评论- 83 c#如何处理自定义消息C#自定义消息通信往往采用事件驱动的方式实现,但有时候我们不得不采用操作系统的消息通信机制,例如在和底层语言开发的DLL交互时,是比较方便的。下面列举了一些实现方式,以供参考。有关C#中的消息机制,请参考文章C# 消息处理机制及自定义过滤方式。 一、通过SendMessage或postmessage函数发送...
2018-10-14 19:02:16
755
转载 C# 消息处理机制及自定义过滤方式
一、消息概述 Windows 下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理。1. 什么是消息(Message) 消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采用面对对象的方式重新定义了Message。新的消息(Message)结构的公共部分属性基本与早期的一样,不过它是...
2018-10-14 18:54:37
296
原创 链表 环形链表 队列 环形队列 栈
#include<iostream>#include "stdlib.h"#define _AFXDLL#include "windows.h"#include "process.h"#define SelTest 2using namespace std;template<typename T>class mylist{private: stru...
2018-10-10 23:56:41
507
原创 泛型链表的反转
#include<iostream>#include "stdlib.h"using namespace std;template<typename T>class mylist{private: struct node { T data; node* m_next; node() { m_next=NULL; } };pub...
2018-10-07 17:24:47
144
原创 C#贪心算法
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections.Generic;namespace ConsoleApplication3{ public class ActiveTime { sta...
2018-09-25 17:49:28
1363
原创 数据库4 select 用法
select * from 表名 -- 查询整个表的记录select 列名1,列名2 , 列名3... from 表名 --查询整个表的显示特定列的记录select 列名 from 表名 where -- 查询整个表的符合特定条件的记录select 列名 as 别名 from 表名 -- 查询整个表,显示特定列的 显示列的别名,并不修改表结构select 列名 别名 from ...
2018-09-08 02:58:26
324
原创 数据库 3 alter用法 --约束
altert table 表名 add 列名 数据类型 --增加一个表的一个列alert table 表名 drop column 列名 -- 删除一个表的一个列alert table 表名 alter 列名 数据类型 -- 修改一个名的 一个列的数据类型alert table 表名 add constraint 主键约束名 pri...
2018-09-08 02:34:41
996
原创 数据库之2 insert into updata
create database Empplesson primary(--创建数据库 name = EmpItem,size = 5mb,filename ='f:\吴安学习\数据库\数据库练习\Emppless.mdf',filegrowth =20%)log on(name =EmpItem_log,size =5mb,filename ='f:\吴安学习\数据库\...
2018-09-02 14:35:24
171
原创 学习数据库1-创建数据和表
create database mydbon primary(--配置主数据文件的选项name='mydatabaseone',--主数据文件的逻辑名称filename ='c:\mydatabaseone.mdf',--主数据库的文件的实际位置size =5MB,filegrowth =20%)log on(--配置日志文件的选项name ='mydatabaseone...
2018-09-02 00:42:44
210
原创 MFC DDX_Control 报错问题
MFC 实现控件ID和控件变量的绑定 DDX_Control ,实现子类化的。 有时候报错了。原因总结如下1 ID 号在resource.h 是否重复。 重复了要注意是不是一个是不用的,如果另外一个ID 不使用,重复无影响。2 在多项目工程的解决方案中,修改了头文件,资源文件,不能只编译当前项目,要将链接到当前项目的lib文件的所有项目,全部生成一编。注意是生成一次,不用重新生成...
2018-08-21 19:58:18
3530
转载 c#中的值类型和引用类型 装箱拆箱 (好文)
一,c#中的值类型和引用类型 众所周知在c#中有两种基本类型,它们分别是值类型和引用类型;而每种类型都可以细分为如下类型: 什么是值类型和引用类型 什么是值类型: 进一步研究文档,你会发现所有的结构都是抽象类型System.ValueType的直接派生类,而System.ValueType本身又是直接从System.Object派生的。根据定义所知,所有的值...
2018-08-21 10:23:03
3532
18
转载 c# 托管对象与InPtr互转
//托管对象转interPtrGCHandle thisHandle = GCHandle.Alloc(this);nGCHandle.ToIntPtr(thisHandle);//interPtr转非托管对象GCHandle gcUser = GCHandle.FromIntPtr(pUser);HikVisionCamera CamObj = (HikVisionCa...
2018-08-20 18:32:52
1305
原创 C# begininvoke (control)
namespace WindowsFormsApplication1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void showMsg(string str)...
2018-08-11 17:12:59
891
转载 C# Invoke和BeginInvoke(1)
近日,被Control的Invoke和BeginInvoke搞的头大,就查了些相关的资料,整理如下。感谢这篇文章对我的理解Invoke和BeginInvoke的真正含义 。(一)Control的Invoke和BeginInvoke我们要基于以下认识:(1)Control的Invoke和BeginInvoke与Delegate的Invoke和BeginInvoke是不同的。(2)Contr...
2018-08-11 17:03:21
4238
原创 WPF 之1
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:...
2018-08-08 17:52:31
124
原创 C# 之attribute
C# attribute 是不同于属性的, 我们自己写的attribute 姑且叫UserAttribute 继承于attribute 他的作用是什么。他只是做个标记,对类 属性做个标记。一个类或属性 或方法 可以有多个标记。 标记的目的是为了给别人使用时候,识别。从而做成相应的动作。貌似也实现了多态。使用方法 :1) 获得 Type --> GetType2) 获得Mo...
2018-08-08 16:50:30
177
原创 c++ 多继承
#include "stdafx.h"#include <stdlib.h>#include <iostream>using namespace std;class A{ public: A(){_a = 0x00;} virtual ~A(){} virtual void printA(){} virtual A* clone()co...
2018-08-07 12:13:04
194
转载 C++const
C++ const用法小结 (欢迎大家拍砖)C++const 关键字小结 const 是constant的缩写,本意是不变的,不易改变的意思。const 在C++中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。 一、const修饰普通类型的变量。如下:1 const int a = 7; 2 3 int b = a; //it's rig...
2018-08-07 11:17:48
255
转载 C++异常机制
C++异常 为什么要用c++的异常处理机制? 在我们平时写C语言程序时,经常出现会出现一些错误,有些是我们可以预测到的,这些我们可以通过返回错误码,或者设置回调函数打印错误信息等方法处理。但还有些程错误是我们不好预测的,如断错误,这时产生错误我们没有处理就会终止程序,然而我们经常运行程序后遇到错误不希望终止,如我们进程使用一些垃圾软件会闪退,这就是因为他门的程序异常没有处理好,所以遇...
2018-08-03 11:58:42
277
MFC UI 线程的使用
2018-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人