建议80:用Task代替ThreadPool ThreadPool相对于Thread来说具有很多优势,但是ThreadPool在使用上却存在一定的不方便。比如:ThreadPool不支持线程的取消、完成、失败通知等交互性操作。ThreadPool不支持线程执行的先后次序。以往,如果开发者要实现上述功能,需要完成很多额外的工作。现在,FCL中提供了一个功能更强大的概念:Task。Task在线程池的基础上进行了优化,并提供了更多的API。在FCL 4.0中,如果我们要编写多线程程序,...
界面 源码:下载参考了以下两篇文章: http://blog.csdn.net/geekwangminli/article/details/7851673http://blog.csdn.net/wuyazhe/article/details/5598945using 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.Windows.Forms;
using System.IO.Ports;
using System.Text...
转自:http://blog.csdn.net/swj524152416/article/details/75418162我们知道,在C++领域,作为进阶阅读材料,必看的书是《Effective C++》。 而《Effective C#》之于C# ,是类似《Effective C++》之于C++一样的存在。这篇文章,将《Effective C# Second Edition》一书中适用于Unity游戏引擎里使用C#的经验之谈进行了提炼,总结成为21条(一开始总结的是22条,后来发现第22条也是.NET的特性,Unity版本的mono并没有实现,所以严格意...
我就不多说了注释里都有 if (Request.Files["file1"] == null){Response.Write("<script>alert(\"请选择上传文件!\")</script>");}else{//获取图片格式string fileExtension = Path.GetExtension(Request.Files["file1"].FileName);if (fileExtension == ".jpg"){//图片保存路径string savePath = Server.MapPath(@"~/uploadpic/");//取到图片流Stream sam = Request.Files["file1"].InputStream;//取到图片流存入ImageSys...
TimeSpan ts = new TimeSpan(DateTime.Now.Ticks); ts.TotalMilliseconds; 原文:http://www.cnblogs.com/wohexiaocai/p/6094064.html
http://www.wrox.com/WileyCDA/WroxTitle/Professional-C-5-0-and-NET-4-5-1.productCd-1118833031,descCd-DOWNLOAD.html http://www.cnblogs.com/zhouyinhui/archive/2007/11/08/952020.html //中文简易版https://msdn.microsoft.com/en-us/library/ms788718.aspx 英文版本的原文:http://www.cnblogs.com/chucklu/p/4262521.html
1、软件自启动原理 软件自启动的原理要从Windows的注册表聊起,在Windows操作系统下,主要有2个文件夹和8个注册表键项控制程序的自启动,这部分的详细介绍可以参看博客http://www.cnblogs.com/fukajg/archive/2012/08/10/2631250.html。本程序通过“Run”键值实现,Run键值是自启动程序最常见的地方。它的位置在[HKEY_CURRENT_USER\Softvvare\Microsoft\Windows\CurrentVersion\Run]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\W...
1.注释写在上面,充分利用C#的提示 2.短路写法,把大量的前提预先处理,可以让代码实现逻辑更清晰,并能有效的所见代码嵌套深度 3.要常用自带的Action Func Predicate委托类型
不要引入额外的类型 增加负担 http://www.cnblogs.com/akwwl/p/3232679.htmlDelegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型 Func可以接受0个至16个传入参数,必须具有返回值 Action可以接受0个至16个传入参数,无返回值 Predic...
在Node.js的项目中假如我们想去调用已经用C#写的dll库该怎么办呢?在这种情况下Edge.js是一个不错的选择,Edge.js是一款在GitHub上开源的技术,它允许Node.js和.NET core在同一个进程内相互调用,并且支持Windows,MacOS和Linux。本地可以通过npm直接安装Edge.js,地址:https://www.npmjs.com/package/edge#windows,上面有关于它的详细介绍,里面有好多的使用情况,下文主要简单介绍其中的一种使用方法来让Node.js调用C#的dll库。...
会员管理系统全部源代码,VS2010开发,使用Ado.net实体框架EF,简化数据库访问层,并能方便的移植到其他数据库。利用数据绑定减少编码量,提高程序的可维护性和可读性。使用Winfoms方便快速界面开发和修改。简洁的界面设计,方便用户上手。详细的代码注释,帮助二次开发者快速读懂程序。提供带.net框架的Setup安装项目提供软件的序列号注册功能,基于公钥、私钥的非对称加密解密算法。提供数据自动备份功能1、会员管理(新增会员、...
1、C#编写的dll库如何加密2、.NET Reactor使用教程3、.NET Reactor中各种混淆含义、原理4、.NET Reactor制作软件许可证5、.NET Reactor混淆代码导致的无法运行 原文:https://www.cnblogs.com/plus301/p/9675901.html
using System;using System.Windows.Forms;public class frmMain : Form{ #region Windows Code private void InitializeComponent() { this.SuspendLayout(); // // frmMain // this.ClientSize = new System.Drawing.Size(648, 475); this.Name = "frmMain"; this.Load += new System.EventHandler(this.frmMain_Load); th...
最近在做网站自动登陆小工具,遇到技术屏障。密码在submit时会使用js进行加密。这时我需要模拟这个加密过程,想到使用C#执行javascript代码。对于执行javascript代码,纯代码方式使用如下两种方式。1、Google Chrome V8引擎Google Chrome V8引擎在.NET上的封装,功能完善,性能相对较高。地址: http://javascriptdotnet.codeplex.com/using Noesis.Javascript;
using System;
using System.Collections.Generic;namespace JsCSharp...
using System;using System.Collections.Generic;using System.Text;using Microsoft.Office.Interop.Word;using System.IO;using System.Web;using System.Data;using System.Reflection;using Microsoft.Win32;using System.Text.RegularExpressions;using System.Net;namespace OfficeOperate{ public class WordOperate { #region 动态生成Word文档并填充数据 /// /// 动态生成Word文档并填充数据 ...
[S] Single Responsibility Principle (单一职责原则)认为一个对象应该仅只有一个单一的职责 namespace SingleResponsibilityPrinciple
{class DataAccess{void InsertData(){Console.WriteLine("数据插入成功");}// 错误的设计,不符合 单一职责原则//void WriteLog()//{// Console.WriteLine("日志插入成功");//} }// 应该把不同的职责交给不同的对象处理class Logger{void WriteLog(){Console.WriteLine("日志插入成功"...