摘要:
1)参考了网络上的算法,但是那个算法仅仅是用于展示“权重轮循”的意图,在真正的网络下,因为是并行的,所以不可能单纯一个简单的循环可以解决问题。 2)用lock的话性能显然有损失。 3)想了一阵,结合CAS和volatile等细粒度的锁的方式,一个真正可以用软件描述SLB带有权重的算法大概是这个样子( 阅读全文
摘要:
一、Lock: C#中关键字lock(VB.NET中SyncLock,等同于try+finally的Monitor.Enter……Monitor.Exit)。原理是“每次线程进入后锁住当前所有的内存区块等相关区域,由该线程自行处理完毕全部的线程后自动释放”,接着其余线程抢先进入。 优点:最为大众所知 阅读全文
摘要:
一、UI线程异常: 1)直接在主线程中的异常,直接用try……catch捕获(如果你怀疑某个代码会抛出异常)。 2)其它可能性:建议使用Application.ThreadException+Application.SetUnhandledException捕获异常,并防止应用程序终止。 在Prog 阅读全文
摘要:
【一】步骤: 1)将对象转化为Json字符串。 2)将Json字符串编码为byte数组。 3)设置传输对象(WebRequest或者HttpClient)的ContentType是"application/json"。 4)设置传输对象的ContentLength=Byte数组的长度。 5)开始传输 阅读全文
摘要:
一、安装Message Queue:在Win7之前,控制面板,添加删除组件(Windows Message Queue)。Win7~Win8:控制面板,程序和功能,启用或关闭Windows功能(找到Windows Message Queue服务器)选项,连同所有子类一并勾上即可,自动安装。二、使用M... 阅读全文
摘要:
下载PostSharp(Visual Studio Gallery)。安装一个AOP编译器和引入PostSharp.Aspects(注意安装过程中请使用免费的Express版本),然后初步演示代码:using PostSharp.Aspects;using System;namespace Cons... 阅读全文
摘要:
【服务端】[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.None)] [ToolboxItem(false)] [System.Web.Scri... 阅读全文
摘要:
一次做到一个关于使用DataContractJsonSerializer类的表述。其中需要用到MemoryStream数组读取。发生数组溢出错误,这里特记录一笔:public static class JsonSerializer where T:new() { public s... 阅读全文
摘要:
和XmlDocument最大的不同——XmlReader逐行读取。单独很少使用,一般配合序列化(反序列化)使用,以下给出具体例子:namespace ConsoleApplication1{ public class CData : IXmlSerializable { p... 阅读全文
摘要:
1)Mutex:进程之间的同步(互斥量)。2)lock/Monitor……:线程同步。其中lock是Monitor的简化版本(直接生成try{Monitor.Enter(……)}finally{Monitor.Exit(……);}方法。当然,Monitor还有Pulse方法,该方法对于锁定同一个对象... 阅读全文