12 2012 档案

摘要:随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。本文主要是想与园中各位高手一同探讨一下如何使用并发来最大化程序的性能。 多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。 异步操作的本质 所有的程序最终都会由计算机硬件来执行,所以为了更好的理解异步操作的本质,我们有必要了解一下它的硬件基础。 熟悉电脑硬件的朋友肯定对DMA这个词不陌生,... 阅读全文
posted @ 2012-12-29 09:47 xust 阅读(176) 评论(0) 推荐(0)
摘要:很简单,可是却学了很久才理解.string reg = @"[<].*?[>]";<[^>]+.*>source = Regex.Replace(source, reg, "");理解为:@表示后面的字符串表示实际意义,[<] 表示以小于号开头, [<].* 表示以小于号开头,后面匹配任意字符, ? 问号表示懒惰匹配,即重复任意次,但尽可能少重复,后面[>]表示到匹配到大于号结束. 写给自己备忘,也给像我这样的菜鸟参考.这编文章写得很好:http://deerchao.net/tutorials/regex 阅读全文
posted @ 2012-12-25 15:56 xust 阅读(132) 评论(0) 推荐(0)
摘要:如何:使用线程池(C# 和 Visual Basic)Visual Studio 2010其他版本1(共 1)对本文的评价是有帮助-评价此主题“线程池”是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。有关更多信息,请参见线程池(C# 和 Visual Basic)。下面的示例使用 .NET Framework 线程池为介于 20 和 40 之间的十个数字计算Fibonacci结果。每个Fibonacci结果都由Fibonacci类表示,该类提供一个名为ThreadPoolCallback的方法,用于执行计算。将创建表示每个Fibonacci值的对象,Thre 阅读全文
posted @ 2012-12-24 14:40 xust 阅读(255) 评论(0) 推荐(0)
摘要:线程池的介绍及简单实现幸勇,简介:服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实现。发布日期:2002 年 8 月 22 日级别:初级访问情况 :20507 次浏览评论:9(查看|添加评论- 登录)平均分 (108个评分)为本文评分线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段 阅读全文
posted @ 2012-12-24 14:20 xust 阅读(143) 评论(0) 推荐(0)
摘要:CPU是以时间片的方式为进程分配CUP处理时间的,当一个进程以同步的方式去完成几件事情时,此进程必须完成了第一件事情以后再做第二件事,如此按顺序地向CPU请求完成要做的事情。在此单线程的工作模式下,如果把CUP看作是一共有100个时间片的话,CPU可能一直都只是花了其中的10个时间片来处理当前进程所要做的事情,只是用到了CPU的10%的时间片,而其他时间都白白浪费了,当然,实际上CPU的工作模式还是做完一件事以后再去做另一件事,只是CUP的处理速度非常快,很快就处理完成所请求的情事。 为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而互不干扰,如当前进程要完成三件事情1、2、3,那么 阅读全文
posted @ 2012-12-24 13:44 xust 阅读(949) 评论(0) 推荐(0)
摘要:分清原理:多线程和多任务有何不同? 多任务多任务的概念人们已经比较熟悉了,它是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务。Windows就是一个支持多任务的操作系统,比起DOS的单任务系统,确实方便了许多。 Windows多任务处理采用的是被称为虚拟机(Virtual Machine)的技术。所谓虚拟机实际上指的是由Windows在内存中创建的逻辑微机,由它来运行应用程序。当Windows接受到由鼠标器、键盘、定时器信号或某些I/O操作产生的"事件"后,为该任务分配CPU时间。每个任务 (应用程序)使用由Windows分配的短暂的时间片(Timesl 阅读全文
posted @ 2012-12-24 13:35 xust 阅读(3559) 评论(0) 推荐(0)
摘要:方案一:down voteacceptedHere is a generic solution that allows you to wrap any method in a timeout:http://kossovsky.net/index.php/2009/07/csharp-how-to-limit-method-execution-time/ It uses the useful Thread.Join overload that accepts a timeout in milliseconds rather than manually using timers. The onl. 阅读全文
posted @ 2012-12-21 15:39 xust 阅读(473) 评论(0) 推荐(0)
摘要:此文章由人工翻译。 将光标移到文章的句子上,以查看原文。译文原文Action 委托.NET Framework 4其他版本此主题尚未评级-评价此主题更新:2010 年 6 月封装一个方法,该方法不具有参数并且不返回值。命名空间:System程序集:mscorlib(在 mscorlib.dll 中)语法C#C++F#VBpublic delegate void Action()备注可以使用此委托以参数形式传递方法,而不用显式声明自定义的委托。封装的方法必须与此委托定义的方法签名相对应。也就是说,封装的方法不得具有参数,并且不得返回值。(在 C# 中,该方法必须返回void。在 Visual B 阅读全文
posted @ 2012-12-21 13:04 xust 阅读(212) 评论(0) 推荐(0)
摘要:【问题】用C#模拟网页登陆,其中去请求几个页面,会发起对应的http的请求request,其中keepAlive设置为true,提交请求后,然后会有对应的response:resp = (HttpWebResponse)req.GetResponse();之前的多次调试,一直都是可以正常获得对应的response,然后读取html页面的。但是后来几次的调试,在没有改变代码的前提下,结果GetResponse却始终会超时死掉。【解决过程】1.默认request的timeout是1000000毫秒=100秒,都会超时,手动改为10秒,因此就更容易超时了,无法解决问题。2.将http的request 阅读全文
posted @ 2012-12-18 10:41 xust 阅读(220) 评论(0) 推荐(0)
摘要:【问题】C#中,提交对应的POST类型http请求之前,会执行:Stream postDataStream = req.GetRequestStream();然后填充对应的post数据,再提交http的请求。但是调试的时候,发现每次执行GetRequestStream都很慢。慢也就算了,结果最近发现,某次,执行req.GetRequestStream();死掉。【解决过程】1.网上找了找,根据GetRequestStream的效率为什么这么低?的解释,说是.NET每次会自动搜索代理,所以很慢,此处没有设置代理的话,应该直接复制为空:req.Proxy = null;然后再去执行GetReque 阅读全文
posted @ 2012-12-18 10:40 xust 阅读(667) 评论(0) 推荐(0)
摘要:一条网线,不用路由器,多台笔记本电脑共享上网 1、首先,选择其中一台笔记本电脑作为主机,该主机需要正常的与网线连接,即可以正常的上网。打开主机的 “网络连接”,选择“无线网络连接”,右键打开属性对话框,在“常规”选项卡下,双击“TCP/IP 协议”,配置 IP 地址和子网掩码分别为:192.168.0.1 和 255.255.255.0 (如图一所示),其他的不需要设置。图一2、然后,点击主机的无线网络连接属性窗口的 “无线网络配置”,选中“用windows配置我的无线网络设置”,点击下方的“高级”,在要访问的网络里,勾上“仅计算机到计算机(待定)”,不要勾选“自动连接到非首选的网络”。如图二 阅读全文
posted @ 2012-12-07 09:06 xust 阅读(262) 评论(0) 推荐(0)
摘要:很久没有写新的东西了,今天在工作中遇到的一个问题,感觉很有用,有种想记下来的冲动。这篇文章是有关模拟登录网站方面的。实现步骤;启用一个web会话发送模拟数据请求(POST或者GET)获取会话的CooKie 并根据该CooKie继续访问登录后的页面,获取后续访问的页面数据。我们以登录人人网为例,首先需要分析人人网登录时POST的数据格式,这个可以通过IE9中只带的F12快捷键,调出开发人员工具。如下图:通过开始捕获得到POST的地址和POST的数据POST数据:email=aaa@163.com&password=111&icode=&origURL=http%3A%2F 阅读全文
posted @ 2012-12-05 11:29 xust 阅读(237) 评论(0) 推荐(0)