8天玩转并行开发——第八天 用VS性能向导解剖你的程序

最后一篇,我们来说说vs的“性能向导,通常我们调试程序的性能一般会使用Stopwatch,如果希望更加系统的了解程序,我们就需要用到”性能向导“,通过性能报告便于我们快速的发现并找到潜在的性能问题。首先我们上一段需要改进的代码:usingSystem; usingSy

Mr.Pan
阅读(236)
2019-05-31

8天玩转并行开发——第七天 简要分析任务与线程池

其实说到上一篇,我们要说的task的知识也说的差不多了,这一篇我们开始站在理论上了解下“线程池”和“任务”之间的关系,不管是说线程还是任务,我们都不可避免的要讨论下线程池,然而在.net 4.0以后,线程池引擎考虑了未来的扩展性,已经充分利用多核微处理器架构,只要在可能

Mr.Pan
阅读(284)
2019-05-31

8天玩转并行开发——第六天 异步编程模型

在.net里面异步编程模型由来已久,相信大家也知道Begin/End异步模式和事件异步模式,在task出现以后,这些东西都可以被task包装起来,可能有人会问,这样做有什么好处,下面一一道来。一: Begin/End模式1: 委托 在执行委托方法的时候,我们常常会看

Mr.Pan
阅读(285)
2019-05-31

8天玩转并行开发——第五天 同步机制(下)

承接上一篇,我们继续说下.net4.0中的同步机制,是的,当出现了并行计算的时候,轻量级别的同步机制应运而生,在信号量这一块出现了一系列的轻量级,今天继续介绍下面的3个信号量CountdownEvent,SemaphoreSlim,ManualResetEventSli

Mr.Pan
阅读(250)
2019-05-31

8天玩转并行开发——第四天 同步机制(上)

在并行计算中,不可避免的会碰到多个任务共享变量,实例,集合。虽然task自带了两个方法:task.ContinueWith()和Task.Factory.ContinueWhenAll()来实现任务串行化,但是这些简单的方法远远不能满足我们实际的开发需要,从.net 4

Mr.Pan
阅读(304)
2019-05-31

8天玩转并行开发——第三天 plinq的使用

相信在.net平台下,我们都玩过linq,是的,linq让我们的程序简洁优美,简直玩的是爱不释手,但是传统的linq只是串行代码,在并行的年代如果linq不支持并行计算那该是多么遗憾的事情啊。 当然linq有很多种方式,比如linq to sql ,xml,object

Mr.Pan
阅读(235)
2019-05-31

8天玩转并行开发——第二天 Task的使用

在我们了解Task之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在.net 4.0之后被一种称为基于“任务的编程模型”所冲击,因为task会比thread具有更小的性能开销,不过大家肯定会有疑惑,任务和线程到底有什么区别?1:任务是架构在线程之上的

Mr.Pan
阅读(240)
2019-05-31

8天玩转并行开发——第一天 Parallel的使用

随着多核时代的到来,并行开发越来越展示出它的强大威力,像我们这样的码农再也不用过多的关注底层线程的实现和手工控制,要了解并行开发,需要先了解下两个概念:“硬件线程”和“软件线程”。1. 硬件线程 相信大家手头的电脑都是双核以上的,像我这样古董的电脑都是双核的,这样的双

Mr.Pan
阅读(247)
2019-05-31

C# 设置Excel数据自适应行高、列宽的2种情况 (转)

Excel表格中,由于各种数据的复杂性,可能存在单元格中的数据字号大小、数据内容长度不一而出现,列宽过宽、过窄或者行高过大、过小的问题。常见的解决方法是调整行高、列宽。在Microsoft Excel中,在单元格格式设置中可手动设置自适应行高或自适应列宽,但通过代码,我

Mr.Pan
阅读(429)
2019-04-17

将DataRow[]转换成DataTable的两种写法

第一种方法是直接从一个datatable转到另一个datatable privatestaticDataTableGetNewTable(DataTableDT,stringstrCondition) { DataTableTempDT=DT.Clone();

Mr.Pan
阅读(240)
2019-01-15

C# 图片处理帮助类(压缩,裁剪,缩略图)

//C#图片操作帮助类 publicclassImageHelper { ///summary ///生成缩略图 ////summary ///paramname=sourceFile原始图片文件/param ///paramname=quality质

Mr.Pan
阅读(392)
2018-12-25

C# 通过AForge.dll 调用摄像头设备

在网络上找调用摄像头的方法,找了AForge,网络上有很多的例子,调用成功了写篇文章总结经验,AForge提供了很多的类库,使用起来很方便AForge AForge.Controls AForge.Imaging AForge.Math AForge.Video

Mr.Pan
阅读(425)
2018-12-18

C# UDP 通讯 简单例子

1、UdpClient的实例化时需要依靠一个IpEndPoint对象,这个IpEndPoint对象在UdpClient收发数据时,起到关键的作用。2、targetPoint表示,发送的数据要去往的地址。因为我在本机测试,所以targetPoint与udpPoint的两个

Mr.Pan
阅读(345)
2018-12-18

Bitmap与byte[] 互转

//Bitmap转byte[] publicbyte[]Bitmap2Byte(Bitmapbitmap) { using(MemoryStreamstream=newMemoryStream()) { bitmap.Save(stream,ImageForm

Mr.Pan
阅读(228)
2018-12-18

C#创建Word并填充内容

Object Nothing = System.Reflection.Missing.Value; Directory.CreateDirectory(F:/抽奖); //创建文件所在目录 string time = DateTime.N

你姐
阅读(486)
2018-11-28