C#
AngleaQQ
这个作者很懒,什么都没留下…
展开
-
C#异步跨线程
最近学习C#的异步操作,总是搞不明白什么意思,然后今天想自己写一下整理一下思路。 在窗体编程中,经常会碰到界面假死的状态,原因是什么呢?首先我们看一个造成假死的一个例子 我写了一个工程,目的是在点击开始按钮后progressBar.Value每隔10秒加一,然后richTextBox打印出来当前的progressBar.Value 部分代码如下 private void Upda原创 2015-04-17 11:20:59 · 431 阅读 · 0 评论 -
C#双缓冲
private void Updata(){ Graphics g = pictureBox.CreateGraphics();//创建画布 BufferedGraphicsContext currentContext = BufferedGraphicsManager.Current;//创建缓冲区上下文 BufferedGraphics myBuffer = curre原创 2015-05-26 15:49:57 · 419 阅读 · 0 评论 -
C#调用CMD
第一种返回命令执行后的结果,顺便加上解释static string StartCmd(string cmd){ if (cmd == string.Empty || cmd == "") return null; try { //实例化process对象 using (Process p = new Process()) {原创 2015-07-02 23:16:49 · 727 阅读 · 0 评论 -
设置系统时间
首先引入 using System.Runtime.InteropServices;//dll引用时要用到的 using System.Text.RegularExpressions;//正则表达式匹配要用到的定义获得系统时间的结构体 [StructLayout(LayoutKind.Sequential)] public class wSystemTime {原创 2015-06-09 16:02:53 · 369 阅读 · 0 评论 -
正则表达式
什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式。那么一个正则表达式,究竟是什么?其实它就是一个字符串,但这个字符串具有特定含义。基础语法 字面值所谓字面值,就是没有任何转义,查找的对象就是其本身,比如正则表达式 abc ,查找的结果就是返回要查找字符串中 a, b, c三个字母连在一转载 2015-05-14 23:31:37 · 314 阅读 · 0 评论 -
窗体通信
今天在写两个窗体间的通信,使用的是委托下面介绍一下自己的想法 比如有两个窗体A,B,A要给B发送信息(A->B),即在窗体A中改变数据,然后将数据传递给B。 想法是 在A中定义一个委托,在B中定义一个接受数据的方法,A中的委托绑定B中的接受数据的方法。那么,A中传递给B的数据,就可以通过委托传递给B。下面是一个自己写的例子,即在窗体B中的用户名和密码传递给A 上代码using System;原创 2015-05-05 22:13:29 · 297 阅读 · 0 评论 -
C#实现毛玻璃效果
实现的原理是创建的窗体标题栏上是毛玻璃效果的,所以使用一个函数 void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins); 这个函数的作用就是从标题栏扩展到其他区域using System;using System.Collections.Generic;using System.ComponentModel;原创 2015-05-13 22:48:42 · 1736 阅读 · 0 评论 -
获取窗口句柄
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Wi转载 2015-05-13 09:17:52 · 526 阅读 · 0 评论 -
C#生产者消耗者
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Wi原创 2015-05-13 09:14:16 · 267 阅读 · 0 评论 -
APM
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using S转载 2015-05-13 08:49:32 · 289 阅读 · 0 评论 -
C#调用CMD创建WIFI热点
//调用CMD public void CMD(string command) { try { Process cmd = new Process();//创建一个进程 cmd.StartInfo.FileName = "cmd.exe";//进程名,这个是必须有的 cmd.StartInfo.Arguments = "/c"原创 2015-05-13 08:37:42 · 656 阅读 · 0 评论 -
获取本机IP
IPAddress hostIP = Dns.GetHostAddresses(Dns.GetHostName()).ToList().First(d => d.AddressFamily == AddressFamily.InterNetwork);原创 2015-05-13 08:50:44 · 256 阅读 · 0 评论 -
lock
多线程访问同一个资源的时候需要用到锁,当一个线程锁定这个资源,其他线程需要等待它释放才能访问。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text原创 2015-05-13 08:48:38 · 228 阅读 · 0 评论 -
简单的跟踪算法
设两个物体间的X距离为Sx,Y距离为Sy 跟踪物体的X轴速度为Vx,Y轴速度为Vy 那么可以得到简单关系是 Vx / Vy = Sx / Sy; 不妨设 Vx = u * Sx; Vy = u * Sy; 即可得到跟踪的关系式。下面是一个简单例子,两个小球追击的例子class Ball { public Point m_Location = new Point(原创 2015-04-26 20:01:01 · 389 阅读 · 0 评论 -
跨线程的得到系统时间
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Wi原创 2015-04-17 12:22:10 · 298 阅读 · 0 评论 -
C#一些委托类型
C#中已经为我们定义了一些委托类型,我们就不需要自己定义了Func的委托 TResult表示返回的类型 Tx argx表示输入的参数 Func的委托可以没有输入的参数但是必须要有返回的类型(1) *delegate TResult Func<TResult>(); (2)*delegate TResult Func<T1,TResult>(T1 arg1);(3) *d原创 2015-04-17 11:52:58 · 302 阅读 · 0 评论 -
Lambada表达式简介
在我们程序中,经常有这样一些需求: 1. 需要一个临时方法,这个方法只会使用一次,或者使用的很少。 2. 这个方法的方法体很短,以至于比方法声明都短,写起来实在没劲(我将其称之为“一句话方法”)。匿名委托匿名方法使我们不需要创建具体的委托方法我们可以直接用匿名来定义委托方法例如: Action < string> p = delegate(string s)//定义一个委原创 2015-04-17 11:27:35 · 442 阅读 · 0 评论 -
(delegate)BeginInvoke&EndInvoke
下面是我对BeginInvoke&EndInvoke的一点理解,作为一个记忆。 第一段代码是定义一个回调函数,第二段代码直接使用Lambada,还是Lambada方便啊 我先定义了一个委托,这个委托的内容是延时10秒钟,然后返回一个字符串,如果放在UI线程中就会有假死状态,所以使用委托的BeginInvoke,delegate.BeginInvoke的意思就是创建一个工作线程来执行委托函数,也就原创 2015-04-17 22:07:59 · 463 阅读 · 0 评论