随笔分类 -  C#

如何将Debug文件夹下的资源打包成一个EXE文件直接执行
摘要:如何将Debug文件夹下的资源打包成一个EXE文件直接执行 如何将Debug文件夹下的资源打包成一个EXE文件直接执行 如何将Debug文件夹下的资源打包成一个EXE文件直接执行 如何将Debug文件夹下的资源打包成一个EXE文件直接执行 前言:前段时间写了个小程序,想分享给好友看看,可所以资源都放 阅读全文

posted @ 2018-10-13 14:35 %幻#影% 阅读(4991) 评论(1) 推荐(0)

NHibernate系列文章目录
摘要:第一章:NHibernate基础 NHibernate介绍 第一个NHibernate工程 简单的增删改查询 运行时监控 NHibernate配置 数据类型映射 Get/Load方法 NHibernate批量更新 NHibernate事务 NHibernate组件 使用程序集管理NHibernate 阅读全文

posted @ 2018-06-11 15:20 %幻#影% 阅读(134) 评论(0) 推荐(0)

正确实现 IDisposable 接口
摘要:正确实现 IDisposable 接口 前言: 之前在M$的一本工具书上看过该节内容,但慢慢地就忘记了, 在实际项目遇到类似的问题又要 google, 汗下, 于是写此篇blog作备忘录 。虽然 .net 有垃圾回收机制(GC), 可自动进行大部分的资源清理工作,但开发人员仍旧应该养成良好的通过手动 阅读全文

posted @ 2018-06-08 16:27 %幻#影% 阅读(207) 评论(0) 推荐(0)

HttpClient 详解一《C#高级编程(第9版)》
摘要:1.异步调用 Web 服务 来看看下面方法解释: 因为 HttpClient 使用 GetAsync 方法调用,且使用了 await,所以 Main 方法输出到屏幕的消息先显示,而 GetData 调用中的数据后显示。 对 GetAsync 返回一个 HttpResponseMessage 对象。表 阅读全文

posted @ 2018-06-08 15:35 %幻#影% 阅读(350) 评论(0) 推荐(0)

【C#】【Thread】Barrier任务并行
摘要:Barrier 是一个对象,它可以在并行操作中的所有任务都达到相应的关卡之前,阻止各个任务继续执行。 如果并行操作是分阶段执行的,并且每一阶段要求各任务之间进行同步,则可以使用该对象。 ——MSDN 简单理解就是: 设定一个量,每个线程运行到这停止,等其他所有线程都到达这个点,然后继续运行。 上述例 阅读全文

posted @ 2018-06-05 10:02 %幻#影% 阅读(148) 评论(0) 推荐(0)

【C#】【Thread】Barrier任务并行
摘要:Barrier 是一个对象,它可以在并行操作中的所有任务都达到相应的关卡之前,阻止各个任务继续执行。 如果并行操作是分阶段执行的,并且每一阶段要求各任务之间进行同步,则可以使用该对象。 ——MSDN 简单理解就是: 设定一个量,每个线程运行到这停止,等其他所有线程都到达这个点,然后继续运行。 上述例 阅读全文

posted @ 2018-05-29 16:04 %幻#影% 阅读(170) 评论(0) 推荐(0)

【C#】【Thread】SpinLock 自旋锁
摘要:SpinLock结构是一个低级别的互斥同步基元,它在等待获取锁时进行旋转。 在多核计算机上,当等待时间预计较短且极少出现争用情况时,SpinLock 的性能将高于其他类型的锁。 不过,我们建议您仅在通过分析确定 System.Threading.Monitor 方法或 Interlocked 方法显 阅读全文

posted @ 2018-05-29 14:00 %幻#影% 阅读(352) 评论(0) 推荐(0)

C#多线程那点事——信号量(Semaphore) Semaphore 信号量
摘要:C#多线程那点事——信号量(Semaphore) 信号量说简单点就是为了线程同步,或者说是为了限制线程能运行的数量。 那它又是怎么限制线程的数量的哩?是因为它内部有个计数器,比如你想限制最多5个线程运行,那么这个计数器的值就会被设置成5,如果一个线程调用了这个Semaphore,那么它的计数器就会相 阅读全文

posted @ 2018-05-29 13:52 %幻#影% 阅读(220) 评论(0) 推荐(0)

C#编程总结(三)线程同步 多线程
摘要:C#编程总结(三)线程同步 在应用程序中使用多个线程的一个好处是每个线程都可以异步执行。对于 Windows 应用程序,耗时的任务可以在后台执行,而使应用程序窗口和控件保持响应。对于服务器应用程序,多线程处理提供了用不同线程处理每个传入请求的能力。否则,在完全满足前一个请求之前,将无法处理每个新请求 阅读全文

posted @ 2018-05-29 11:13 %幻#影% 阅读(269) 评论(0) 推荐(0)

配置 Spring.NET
摘要:配置 Spring.NET 作为一个容器,当然首先要存在一个容器对象了。Spring.NET 中的容器定义在程序集 Spring.Core 中,直接添加这个程序集的引用就可以开始使用了。这个程序集位于 Spring.NET-1.3.1\Spring.NET\bin\net\4.0\release 中 阅读全文

posted @ 2018-05-28 10:25 %幻#影% 阅读(147) 评论(0) 推荐(0)

WPF MvvmLight RelayCommand 绑定Command 的使用
摘要:RelayCommand Mvvm最大的特点就是分离了View和ViewModel,将数据的显示和业务逻辑分开。使用WPF的Binding,我们不仅能够将数据从ViewModel绑定到View,同时也可以将行为绑定到View。例如,在主界面上点击一个按钮,这个按钮实际完成的操作是ViewModel中 阅读全文

posted @ 2018-05-16 17:28 %幻#影% 阅读(1443) 评论(0) 推荐(1)

C#/WPF程序开机自动启动
摘要:最近一个C/S项目客户要求开机自启的功能,网上找了一些方法,不顶用;最后自己去翻书,找到了这段代码,亲测可用,Wpf环境下需要改下获取程序目录的方式即可,Winform直接可用。 http://www.cnblogs.com/henryzong/p/6209797.html 阅读全文

posted @ 2018-05-10 17:19 %幻#影% 阅读(906) 评论(0) 推荐(0)

C# 创建Windows Service(Windows服务)程序
摘要:一、开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二、创建Windows Service 1、新建一个Windows Service,并将项目名称改为“MyWindowsService” 阅读全文

posted @ 2018-05-04 10:11 %幻#影% 阅读(2270) 评论(1) 推荐(1)

C# 中distinct的使用
摘要:假设我们有一个类:Product Main函数如下: 可以看到distinctProduct 的结果是: 因为Distinct 默认比较的是Product对象的引用,所以返回4条数据。 那么如果我们希望返回Id唯一的product,那么该如何做呢? Distinct方法还有另一个重载: 该重载接收一 阅读全文

posted @ 2017-06-23 15:50 %幻#影% 阅读(6473) 评论(0) 推荐(2)

在C#中判断某个类是否实现了某个接口
摘要:有时我们需要判断某个类是否实现了某个接口(Interface),比如在使用反射机制(Reflection)来查找特定类型的时候。 简单来说,可以使用Type.IsAssignableFrom方法: 1 2 typeof(IFoo).IsAssignableFrom(bar.GetType()); t 阅读全文

posted @ 2017-05-10 15:50 %幻#影% 阅读(951) 评论(0) 推荐(0)

C#中yield用法
摘要:yield 关键字向编译器指示它所在的方法是迭代器块。编译器生成一个类来实现迭代器块中表示的行为。在迭代器块中,yield 关键字与 return 关键字结合使用,向枚举器对象提供值。这是一个返回值,例如,在 foreach 语句的每一次循环中返回的值。yield 关键字也可与 break 结合使用 阅读全文

posted @ 2017-05-03 18:29 %幻#影% 阅读(281) 评论(0) 推荐(0)

C#位运算讲解与示例
摘要:今天在项目中遇到按位或组合权限串的问题: 首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ... 如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了。 如: purview = k2|k3; // 赋给添加和删除权限 阅读全文

posted @ 2017-03-16 20:10 %幻#影% 阅读(286) 评论(0) 推荐(0)

c# 四舍五入、上取整、下取整
摘要:在处理一些数据时,我们希望能用“四舍五入”法实现,但是C#采用的是“四舍六入五成双”的方法,如下面的例子,就是用“四舍六入五成双”得到的结果: double d1 = Math.Round(1.25, 1);//1.2double d2 = Math.Round(1.24, 1);//1.2doub 阅读全文

posted @ 2017-03-06 16:20 %幻#影% 阅读(4242) 评论(1) 推荐(0)

C# Task 用法
摘要:C# Task 的用法 其实Task跟线程池ThreadPool的功能类似,不过写起来更为简单,直观。代码更简洁了,使用Task来进行操作。可以跟线程一样可以轻松的对执行的方法进行控制。 顺便提一下,配合CancellationTokenSource类更为可以轻松的对Task操作的代码进行中途终止运 阅读全文

posted @ 2017-02-23 10:10 %幻#影% 阅读(5197) 评论(0) 推荐(0)

C#连接操作mysql实例
摘要:第三方组件:Mysql.Data.dll说明:去官方网站下载Mysql.Data.dll,然后在项目中添加该组件的引用,在代码页里输入using Mysql.Data.MysqlClient,我们就可以顺利的使用该类库的函数建立连接了。以下是几个常用函数:#region 建立MySql数据库连接 / 阅读全文

posted @ 2017-01-05 14:31 %幻#影% 阅读(3286) 评论(0) 推荐(0)

导航