随笔分类 -  .net

最佳策略
摘要:大部分内容是看书所做笔记,放上来只为温习。最佳的资源清理策略,应该是同时实现 Finalize 方式和 Dispose方式。一方面,Dispose方法可以克服Finalize 方法在性能上的诸多弊端;另一方面,Finalize 方法又能够确保没有显式调用 Dispose 方法时,也自行回收使用的所有资源。事实上,.NET 框架类库的很多类型正是同时实现了这两种方式,例如FileStream等。因此,任何重写了 Finalize 方法的类型都应实现 Dispose 方法,来实现更加灵活的资源清理控制。using语句简化了资源清理代码实现,并且能够确保 Dispose 方法得到调用,因此值得推荐。 阅读全文

posted @ 2013-11-06 08:51 sajiao 阅读(619) 评论(0) 推荐(0)

.net非托管资源
摘要:常见的非托管资源包括数据库链接、文件句柄、网络链接、互斥体、COM对象、套接字、位图和GDI+对象等非托管资源的清理,主要有两种方式:Finalize 方法和 Dispose 方法,这两种方法提供了在垃圾收集执行前进行资源清理的方法。Finalize 方式,又称为终止化操作,其大致的原理为:通过对自定义类型实现一个Finalize 方法来释放非托管资源,而终止化操作在对象的内存回收之前通过调用 Finalize方法来释放资源;Dispose 模式,指的是在类中实现 IDisposable 接口,该接口中的Dispose 方法定义了显式释放由对象引用的所有非托管资源。因此,Dispose 方法提 阅读全文

posted @ 2013-11-06 08:49 sajiao 阅读(2139) 评论(0) 推荐(0)

.net内存何时回收?
摘要:垃圾收集器周期性的执行内存清理工作,一般在以下情况出现时垃圾收集器将会启动:(1)内存不足溢出时,更确切地应该说是第 0代对象充满时。(2)调用 GC.Collect 方法强制执行垃圾回收。(3)Windows报告内存不足时,CLR 将强制执行垃圾回收。(4)CLR 卸载AppDomain 时,GC将对所有代龄的对象执行垃圾回收。(5)其他情况,例如物理内存不足,超出短期存活代的内存段门限,运行主机拒绝分配存等等。GC 将着手进行内存清理,当内存释放之前GC会首先检查终止化链表中是否有记录来决定在释放内存之前执行非托管资源的清理工作,然后才执行内存释放。同时,微软强烈建议不要通过 GC.Col 阅读全文

posted @ 2013-11-06 08:47 sajiao 阅读(1150) 评论(1) 推荐(1)

VS Build Events
摘要:if not exist "$(SolutionDir)ServiceWebHost\Configuration\Data" mkdir "$(SolutionDir)ServiceWebHost\Configuration\Data"xcopy "$(SolutionDir)Configuration\Data" "$(SolutionDir)ServiceWebHost\Configuration\Data" /Y/F 阅读全文

posted @ 2013-06-07 17:50 sajiao 阅读(166) 评论(0) 推荐(0)

ExensionJSON
摘要:View Code public static class ExensionJSON { public static string ToJSONList(Type t,List<Object> source) { string returnValue = ""; StringBuilder sb = new StringBuilder(); sb.Append("["); foreach (var item in source) { ... 阅读全文

posted @ 2013-05-11 17:39 sajiao 阅读(201) 评论(0) 推荐(0)

实体验证和Mapping
摘要:View Code public enum MappingType { ImportData, MSSQLTable } public class ValidationError { public string FieldName { get; set; } public string ErrorMessage { get; set; } public ValidationError() { } public ValidationError(string fieldName, stri... 阅读全文

posted @ 2013-05-11 17:31 sajiao 阅读(323) 评论(0) 推荐(0)

CLR 管理内存的区域
摘要:CLR 管理内存的区域,主要有三块,分别为:线程的堆栈,用于分配值类型实例。堆栈主要由操作系统管理,而不受垃圾收集器的控制,当值类型实例所在方法结束时,其存储单位自动释放。栈的执行效率高,但存储容量有限。GC 堆,用于分配小对象实例。如果引用类型对象的实例大小小于 85000 字节,实例将被分配在 GC 堆上,当有内存分配或者回收时,垃圾收集器可能会对 GC 堆进行压缩LOH(Large Object Heap)堆,用于分配大对象实例。如果引用类型对象的实例大小不小于 85000 字节时,该实例将被分配到 LOH 堆上,而 LOH 堆不会被压缩,而且只在完全 GC 回收时被回收(85kb)IL 阅读全文

posted @ 2013-05-04 13:20 sajiao 阅读(385) 评论(0) 推荐(0)

文件转string,string转换成文件
摘要:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;namespace DFISAPITestTool{ public partial class Form1 : Form { private string FileName; ... 阅读全文

posted @ 2012-11-30 10:13 sajiao 阅读(4067) 评论(0) 推荐(0)

多线程编写
摘要:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using PONumberServer;using System.Threading;using System.Threading.Tasks;using Untity;using System.Reflection;using ServerIn 阅读全文

posted @ 2012-11-24 10:49 sajiao 阅读(177) 评论(0) 推荐(0)

config
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Configuration;namespace Logger{ internal class Configer { public static string Config(string key) { string result = null; try { result = Configuration... 阅读全文

posted @ 2012-08-08 13:56 sajiao 阅读(204) 评论(0) 推荐(0)

logger
摘要:logger 阅读全文

posted @ 2012-08-08 13:54 sajiao 阅读(143) 评论(0) 推荐(0)

myTimer
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.Remoting.Messaging;using System.Timers;using Logger;namespace Untitly{ public class myTimer { public static System.Timers.Timer timers; public myTimer() { ... 阅读全文

posted @ 2012-08-08 13:53 sajiao 阅读(457) 评论(0) 推荐(0)

Singleton
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Untitly{ public class Singleton<T> where T :new() { private static object objInstance = null; public static T getInstance() { if (objInstance == null) objInstance = new T(... 阅读全文

posted @ 2012-08-08 13:53 sajiao 阅读(187) 评论(0) 推荐(0)

global
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Security;using System.Web.SessionState;using System.Net;using System.IO;using System.Threading;using Logger;using System.Timers;using Untitly;using System.Runtime.Remoting.Messaging;namespace WebApplica 阅读全文

posted @ 2012-08-08 13:52 sajiao 阅读(306) 评论(0) 推荐(0)

热门标签
摘要:热门标签的标签 阅读全文

posted @ 2012-08-03 13:21 sajiao 阅读(105) 评论(0) 推荐(0)

Winform任务栏闪烁
摘要:[DllImport("user32.dll")] public static extern bool FlashWindow(IntPtr hWnd, bool bInvert);调用FlashWindow(this.Handle, true)// true为闪烁窗体处于活动是调用 if (Form.ActiveForm != this) { FlashWindow(this.Handle, true)// true为闪烁 }另外的线程调用时 if (Form.ActiveForm != this) { InvokeProxyMethod.ProxyMethod(this 阅读全文

posted @ 2012-02-23 15:35 sajiao 阅读(1461) 评论(0) 推荐(0)

导航

街边网