随笔分类 - .net&&c#
摘要:遇到Https网站,c# http请求的时候,总是报SSL连接错误。后来经搜索,发现有解决方案: .net 2.0 需要引入一个第三方组件:BouncyCastle.dll,这是我写的一个例子: 请求到的html,为什么需要一行一行读呢?我在调试的时候发现有个bug,如果一次性读取的时候,它停不下来
阅读全文
摘要:刚毕业不久那会儿,在公司干的活是利用cms做网站,有一天,客户要求添加论坛功能。由于cms没有自带此功能,我得找现有的论坛功能,然后给整合进去,整合何谈容易。公司给留的时间不多。我找到一个论坛,整合到cms中,在本地测试没有问题。我跑到客户那儿去部署,那时候,主流用的是IIS6,这时候出了一个问题,
阅读全文
摘要:一、概念 什么是线程?线程是程序执行最基本单元,它是一种数据结构。 百度百科是这样描述的: 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。 维基百科是这样定义的: In co
阅读全文
摘要:有一本书叫《asp.net 本质论》,作者名叫冠军。我看了几次,都没有坚持看下来。这次连续看完了前三章,然后参考网上的资料,总结下我对.net运行机制的理解。 先上两张图: 看着这两张图,回顾以前的asp.net的开发经历,很少接触这些东西。现在才知道,一个http请求从发出到响应,asp.net已
阅读全文
摘要:一提起lock,想必大家都很熟悉,因为它易用,顾名思义,就是一把锁,常用于多线程的同步,一次只允许一个线程进入。最近遇到一个很诡异的bug。 这段代码的大意:从数据库中查询出解析器(23行)加入到解析器缓存中(52行)。这个牵扯到多线程,因此,第12行加了把锁。本来数据库中只有13条数据,但是软件启
阅读全文
摘要:从IE浏览器获取当前页面内容可能有多种方式,今天我所介绍的是其中一种方法。基本原理:当鼠标点击当前IE页面时,获取鼠标的坐标位置,根据鼠标位置获取当前页面的句柄,然后根据句柄,调用win32的东西进而获取页面内容。具体代码: 第11行的 GetHTMLDocumentFormHwnd(GetPoin
阅读全文
摘要:建立Installer安装类,如图: 代码如下: 第33行,调用了win32:的方法:
阅读全文
摘要:对一段c#编写的代码,有一些疑问,想通过IL中间语言看看,编译后是怎么处理的。代码如下: 这段代码的功能是很简单的:给定一个文件夹,返回下面的所有文件(递归遍历)。我的疑问:在第11行,递归调用的时候,strs变量(用来存放所有文件的名称列表)能够保存到所有文件名吗?程序运行的结果告诉我,代码没有任
阅读全文
摘要:最近在研究前辈写的winform代码,其中有一个功能,前辈用了EventWaitHandle。初读代码,有点不理解,慢慢想来,还是可以理解的。这个功能,就是执行某项比较耗时的任务,需要打开旋转图标,等任务执行完成后,再关闭旋转图标。这是程序主体框架: 解释:线程(给个名称:TaskThread)启动
阅读全文
摘要:c#中异步编程,主要有两种方法: 1、委托的异步调用; 2、Task的await,async (c# 4.5) 我们来看例子: Func,是系统定义好的委托类型,当然也可以自定义委托了,委托的本质是一个类,它有一个BeginInvoke 异步调用方法。SavePageSingleFile方法是委托要
阅读全文
摘要:先看webapi提供的服务: 客户端调用: 通用的post方法: 此时返回来的结果如下: 此时,我就想为什么之前的接口,返回不了数据呢?想了下应该是返回的model无法序列化成xml格式,如何让系统帮助生成xml,使用了各种办法,还是返回服务器500错误,最后决定还是自己写个序列化的方法。在此先不提
阅读全文
摘要:记得八年前第一次使用socket做的一个五子棋程序,需要序列化棋子对象,传递到对方的电脑上。 一个偶然的机会,第二次使用socket做点事情。先看聊天服务器端的实现: 服务器端要实现以下功能: 1、启动服务,开启监听 2、持续不断地接收消息 3、发送消息 启动服务,创建监听socket,绑定Ip和端
阅读全文
摘要:说起wcf,一直以来总是直接创建wpf的应用程序,这样默认的宿主是IIS。如果想更换宿主,那么我们首先得创建wcf类库。 这个类库会自动创建一个app.config文件。到最后部署的时候,把它移到宿主的项目下。看看IService1.cs: 该接口只提供一个方法,接收一个对象,返回string,再来
阅读全文
摘要:根据用户的输入确定是哪一卦,哪一爻。 下面的代码是如何在控制台打印八卦图: 高亮:代表算出的爻。下载完整的代码:https://github.com/wangqiang3311/mywork
阅读全文
摘要:我做一个remotting的通讯测试,让控制台程序和wpf窗体通讯。具体实现的功能如下: 1、wpf获取信息在控制台上显示 2、控制台启动wpf,以及在屏幕前端显示 首先,我们来看项目结构: 共三个项目,它们分工明确,test是控制台和wpf的公共类库,它定义了双方通讯的接口,以及接口的实现: wf
阅读全文
摘要:要做一个IE右键浏览器插件,得3步走。 第一,在IE右键菜单上添加自定义菜单名称,是通过注册表实现的,如下: 其中,myLib.MyClass是c#编写的com组件暴露出来的类。 第三,com组件编写。下面的guid是随机生成的。 这个组件公布了一个Add方法,同时,它必须注册,方能使用,见下图。
阅读全文
摘要:一提到Semaphore(信号量)的使用,还挺有意思的,它允许多个线程同时访问多个稀有资源,我立马想到银行的ATM机取钱的场景。看下面的代码: 这个结果说明,4个ATM,当前都有人占用着,所以四个人处于等待状态。 当我们把初始资源数设为4,结果: 上图说明,四个人都没有等待,而是直接进入了ATM机的
阅读全文
摘要:说起Mutex,它的中文名字叫互斥体。它是WaitHandle家族成员之一,前面有一篇介绍过WaitHandle的家族成员构成。那么Mutex有什么作用呢?它是怎么使用的? 我们先来看看它的使用场景一: 话说小王同学做了wpf的客户端程序,现在已经打包好了,准备发布出去,结果在本地测试时,突然发现他
阅读全文
摘要:这段不到100行的代码,采用的思想是,生产者消费模式,其中应用了AutoResetEvent ,从字面上看,是自动重置事件,它是EventWaitHandle的一个子类。 我们还是先来看看这段代码所要表达的意思。第8行,定义了一个文件传输队列FileTaskQueue,它用来接收生产者生产的实体,即
阅读全文
摘要:我曾经去一个公司面试,遇到这么一个题目:求1000以内的素数有多少个?用多线程实现,并给出消耗时间。我想了半天,没有想出多线程的解决方案。今天因为机缘到了,我浅谈下我的解法。 这道题,显然得考虑两个问题: 1、多线程的问题 2、算法性能问题 有人觉得1000以内还考虑什么算法性能?这肯定很快。但是话
阅读全文

浙公网安备 33010602011771号