随笔分类 - 其他
摘要:虚拟函数从C#的程序编译的角度来看,它和其它一般的函数有什么区别呢?一般函数在编译时就静态地编译到了执行文件中,其相对地址在程序运行期间是不发生变化的,也就是写死了的!而虚函数在编译期间是不被静态编译的,它的相对地址是不确定的,它会根据运行时期对象实例来动态判断要调用的函数,其中那个申明时定义的类叫
阅读全文
摘要:并发(英文Concurrency),其实是一个很泛的概念,字面意思就是“同时做多件事”,不过方式有所不同。在.NET的世界里面,处理高并发大致有以下几种方法: 1,异步编程 在.NET 4.5 及以上框架中引入的async/await关键字(这个算是我们用的比较多的) 看代码例子: private
阅读全文
摘要:无意间看到一个奇葩的解释,说委托的本质的就是多线程,这...... 委托本质就是一个函数的指针而已,和线程完全是不同的概念;如果非要扯上点关系,就是同步委托和异步委托。同步委托就是占用主线程同步执行,异步委托肯定是开启新的线程去执行委托指向的函数。多播委托其实也是一样的,无非就是绑定了多个函数的指针
阅读全文
摘要:说起下载文件,大家都会想起http和FTP下载。http和ftp,其实底层都是基于socket通信,只不过http和ftp协议格式定义不一样而已。下载文件,要看服务器支持什么类型的协议,如果只支持http,那你就用httpwebrequest类好了,如果支持FTP,那你就用FTP的类来下载文件。 下
阅读全文
摘要:对curl熟悉的同学都知道curl在linux环境下应用得很广-命令行下载文件。我为什么会记录它在windows下的应用呢,原因是之前做项目,客户给我提供了一个url,按正常的思路,我用webclient去downloadFile就可以直接下载,但是我下载下来的是一个网页,并没有把里面的pdf文件下
阅读全文
摘要:在.net开发中,我们常常需要将自己的日志写在程序目录下,方便我们调试和查询。今天我介绍一下我们经常应用的Log4net-输出日志的应用。 一、添加引用“管理NuGet程序管理包”,搜索log4net,点击安装,如图所示 二、在App.config中添加相关节点。如下所示: 三、新建一个类,填写如下
阅读全文