202106-19 C#使用 NAudio 实现音频可视化的方法 预览:捕捉声卡输出:实现音频可视化,第一步就是获得音频采样,这里我们选择使用计算机正在播放的音频作为采样源进行处理:NAudio中,可以借助WasapiLoopbackCapture来进行捕捉:WasapiLoopbackCapturecap=newWasapiLoopbackCapture();cap.DataAvailable+=(sender,e)=>//录制数据可用时触发此事件,参数中包含音频数据{float[]allSamples=Enumerable//提取数据中的采样.Range(0,e.BytesReco... 继续阅读 >
202106-12 详解C# 线程的挂起与唤醒 如果说C#和C++有什么不同,博主不得不说,对于异步的支持程度是C#的一一个伟大的进步。 其实早期的C++都没有异步,并发的概念。博主第一次使用C++创建异步程序的时候,是使用boost库的内容进行实现的。相对而言,C#对于异步的支持可以说是相当的好。相信很多名词大家都很耳熟能详,比如说Thread,BeginInvoke,Delegate,backgroundworker等等。。。其实楼主在使用了这么多的异步操作过程中,还... 继续阅读 >
202106-12 c#基于Redis实现轻量级消息组件的步骤 最近在开发一个轻量级ASP.NETMVC开发框架,需要加入日志记录,邮件发送,短信发送等功能,为了保持模块的独立性,所以需要通过消息通信的方式进行处理,为了保持框架在部署,使用,二次开发过程中的简易便捷性,所以没有选择传统的MQ,而是基于Redis的订阅发布实现一个系统内部消息组件,话不多说,上码!数据结构定义消息实体包含几个部分,订阅通道名称,信息头,信息体,信息差异化额外信息字典,信息头主要包含消息标识,消息... 继续阅读 >
202106-09 c#基于WinForm的Socket实现简单的聊天室 IM 1:什么是Socket所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。2:客服端和服务端的通信简单流程3:服务端Code:usingSystem;usingSystem.Collections.Generic;u... 继续阅读 >
202106-09 C#如何使用Task执行异步操作 为什么要使用Task线程是创建并发的底层工具,因此具有一定的局限性。没有简单的方法可以从联合(Join)线程得到“返回值”。因此必须创建一些共享域。当抛出一个异常时,捕捉和处理异常也是麻烦的。线程完成之后,无法再次启动该线程。相反,只能联合(Join)它(在进程阻塞当前线程)。任务是可组合的——使用延续将它们串联在一起。它们可以使用线程池减少启动延迟,而且它们可以通过TaskCompletionSource使用回调... 继续阅读 >
202106-09 c#使用Aspose打印文件的示例 最近在研究winform打印文件,需要支持word,excel,ppt,pdf,图片这几种格式,不能依赖相关软件环境,研究后决定使用Aspose套件将相关文件全部转换成pdf后打印WrodToPDF使用Aspose.Word11.9,需要配合licence文件破解//去水印stringlicenseFile="Aspose.Words.lic";if(File.Exists(licenseFile)){ Aspose.Words.Licenselicense=newAspose.Words.License(); license.SetLi... 继续阅读 >
202106-09 详解C#中普通缓存的使用 一、首先,新建控制台程序(.NETCore)、以下为项目结构CacheHelper缓存帮助类DemoTest为测试有无缓存的Demo代码Program你们懂得就不多说了二、编写缓存类publicclassCacheHelper{//缓存容器privatestaticDictionary<string,object>CacheDictionary=newDictionary<string,object>();///<summary>///添加缓存///</summary>publicstaticvo... 继续阅读 >
202106-05 C#仿Windows XP自带的扫雷游戏 本文实例为大家分享了C#仿WindowsXP自带的扫雷游戏的具体代码,供大家参考,具体内容如下1题目描述:模仿WindowsXP自带的扫雷游戏定义一个30×30的二维数组,模仿WindowsXP自带的扫雷游戏对这个二维数组进行随机布雷,要求至少布雷30个。游戏规则是:某个元素的值是一周(相邻8个位置)存在的地雷的个数。2源码详解usingSystem;usingSystem.Collections;namespaceCsharp5_3{classProgram{staticvoidMai... 继续阅读 >
202106-05 C#实现数字转换 本文实例为大家分享了C#实现数字转换的具体代码,供大家参考,具体内容如下1题目描述:数字转换从键盘接收一个字符串,将其转换成一个double类型的数据,若转换成功,则显示转换之后的结果(保留小数点之后的4位,小数点之前的数字每3位加一个逗号);若转换失败,则显示提示信息,并继续接收用户输入,重新转换;2源码详解usingSystem;namespaceCsharp6_2{classProgram{staticvoidMain(string[]args)... 继续阅读 >
202106-05 c# dynamic的使用详解 dynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。比如,即使你对GetDynamicObject方法返回的对象一无所知,你也可以像如下那样进行代码的调用,编译器不会报错:dynamicdynamicObject=GetDynamicObject();Console.WriteLine(dynamicObject.Name);Console.WriteLine(dynamicObject.SampleMethod());说到正确用法,... 继续阅读 >
202106-05 C#实现会移动的文字效果 本文实例为大家分享了C#实现会移动的文字效果的具体代码,供大家参考,具体内容如下1题目描述(1)Form1窗体设计界面如下:(2)窗体左侧为一个靠左停靠的panel,其中包含一个label控件;(3)初试状态时,“水平移动”选中,当用户单击“开始移动”按钮时,label在panel中水平从左向右移动,单击“暂停移动”按钮时,label停在原位置不动;(4)在label移动过程中,若用户切换移动方式,则弹出对话框,提示先暂停移动;在label暂... 继续阅读 >
202106-05 C# 解析XML和反序列化的示例 本次为了记录开发一个基于webservice接口,去解析对方传送过来的xml字符串。实际使用时遇到的一些问题。传输过来的xml格式大致如下:<?xmlversion="1.0"encoding="UTF-8"?><messagesxmlns="http://www.test.com/hit/rhin"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.test.com/hit/rhinfile:///e:/request_message.xsd"><heartbeat/><switchset></switchset>... 继续阅读 >
202106-05 C#实现简易的计算器 本文实例为大家分享了C#实现简易的计算器的具体代码,供大家参考,具体内容如下1题目描述(1)Form1窗体设计界面如下:(2)运算类型的下列列表中包括:加法、减法、乘法、除法、取模共5种操作;初始状态下,选择“加法”运算,当用户更改运算类型时,下面式子中的加号“+”应自动更改为相应的运算符;(3)当用户在前两个文本框中输入时,最后得到结果的文本框始终是空白状态,注意该文本框是只读的,用户不能更改其值;只有当用... 继续阅读 >
202105-29 如何在c#中使用Zlib压缩与解压 介绍近期用c#开发一个游戏的存档编辑工具需要用Zlib标准的Deflate算法对数据进行解压。在StackOverflow上逛了一圈,发现c#比较常用到的方式是微软提供的System.IO.Compression,zlib.net,以及ICSharpCode的SharpZipLib。我简单的测试和包装了一下,便在这里分享一下成果以及我个人的看法。System.IO.Compression通常来说,使用c#开发时能用微软官方提供的工具就尽量用,一个是bug会比较少,维护会比较稳定。此外,官... 继续阅读 >
202105-29 C# String常用函数的使用详解 RemoveRemove(intstartIndex)删除此字符串中从指定位置到最后位置的所有字符。Remove(intstartIndex,intlength)从此实例中的指定位置开始删除指定数目的字符。Remove会进行区域的检查。对于第一种形式当startIndex小于零或startIndex指定的位置不在此字符串内;对于第二种形式当startIndex或count小于零或startIndex加count之和指定一个此实例外的位置。会抛出异常。stringTest="xx-xx... 继续阅读 >
202105-26 C#怎样实现文件下载断点续传 前言老规矩,还是从最简单粗暴的开始。那么多简单算简单?多粗暴算粗暴?我告诉你可以不写一句代码,你信吗?直接把一个文件往IIS服务器上一扔,就支持下载。还TM么可以断点续传(IIS服务端默认支持)。在贴代码之前先来了解下什么是断点续传(这里说的是下载断点续传)?怎么实现的断点续传?断点续传就是下载了一半断网或者暂停了,然后可以接着下载。不用从头开始下载。很神奇吗,其实简单得很,我们想想也是可以想到的。首先客... 继续阅读 >