随笔分类 - C#
摘要:volatile 就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果不加入volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。 就像大家更熟悉的const一样
阅读全文
posted @ 2016-05-07 21:33
Avatarx
摘要:在研究c# 线程之间通信时,发现传统的方法大概有三种 ①全局变量,由于同一进程下的多个进程之间共享数据空间,所以使用全局变量是最简单的方法,但要记住使用volatile进行限制。 ②线程之间发送消息(这个随后文章中会讨论到)。 ③ CEvent为MFC中的一个对象,可以通过对CEvent的触发状态进
阅读全文
posted @ 2016-05-05 13:09
Avatarx
摘要:通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行。微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以继续,这样就获得了管理员的权限来执行程序 通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理
阅读全文
posted @ 2016-04-27 23:06
Avatarx
摘要:应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义配置节。我们经常使用的配置文件的架构是象
阅读全文
posted @ 2016-04-27 23:01
Avatarx
摘要:WinForm或WPF应用程序有时候需要保存用户的一些配置就要用到配置文件,而微软为我们的应用程序提供了Application Configuration File,就是应用程序配置文件,可以很方便的访问和修改应用程序的配置。此文中我们以Winform的数据库服务器配置为例。 工具/原料 Micro
阅读全文
posted @ 2016-04-27 22:31
Avatarx
摘要:阅读目录 利用ODBC去操作 利用TextFieldParser操作 写了个Demo,利用Microsoft.VisualBasic这个程序集中的TextFieldParser解析器解析CSV格式的文件,然后将解析的数据插入到相关表,这样的好处是不用去用令人头疼的ODBC去操作CSV格式文件,如之前
阅读全文
posted @ 2016-04-27 22:11
Avatarx
摘要:网络数据是大端模式,而c#中的数据小端结构,那么在读写网络数据的时候需要进行转换。c#类库IPAddress已经封装了大小端的转换。 封装代码如下: [csharp] view plain copy using System.IO; using System.Net; using System; n
阅读全文
posted @ 2016-04-27 21:46
Avatarx
摘要:C#的FileStream类提供了最原始的字节级上的文件读写功能,但我们习惯于对字符串操作,于是StreamWriter和 StreamReader类增强了FileStream,它让我们在字符串级别上操作文件,但有的时候我们还是需要在字节级上操作文件,却又不是一个字节 一个字节的操作,通常是2个、4
阅读全文
posted @ 2016-04-27 21:36
Avatarx
摘要:控制流语句中的条件表达式是在运行时求值的。而C#预处理器指令是在编译时调用的。预处理器指令(preprocessor directive)告诉C#编译器要编译哪些代码,并指出如何处理特定的错误和警告。C#预处理器指令还可以告诉C#编辑器有关代码组织的信息。 语言对比:C++ —— 预处理 C和C++
阅读全文
posted @ 2016-04-27 14:17
Avatarx
摘要:一、方法参数的类型 值类型和引用类型 当方法传递的参数是值类型时,变量的栈数据会完整地复制到目标参数中即实参和形参中的数据相同但存放在内存的不同位置。所以,在目标方法中对形参所做的更改不会对调用者的初始变量产生任何影响。 当方法传递的参数是引用类型是,只是将变量的引用复制到目标参数中,实参和形参的引
阅读全文
posted @ 2016-04-27 10:51
Avatarx
摘要:三种方法来进行转换。(1) 在.NET Framework类库的System名字空间中有个叫做BitConverter的类,它是专门用来进行这种转换的。主要方法:1> GetBytes()方法 可以将大多数的简单类型转化为byte[];2> ToInt()/ToString()等方法 用来将一个by
阅读全文
posted @ 2016-04-27 10:12
Avatarx
摘要:System.ICloneable接口支持克隆,即用与现有实例相同的值创建类的新实例。msdn上的解释很简单,主要就是clone方法的实行,介绍深拷贝和浅拷贝,搞的很糊涂,那么到底是什么意思呢?看看下面的原理可能就会明白很多了。引自http://www.cnblogs.com/anderslly/a
阅读全文
posted @ 2016-04-26 16:20
Avatarx
摘要:在做项目过程中,有时需要保存一些简单的配置信息,可以使用xml,也可以使用INI文件。下面是C#中读取INI的方法,相信大部分朋友都使用过这种方式。INI文件的存储方式如下, [csharp] view plain copy print? [section] key=value key=value
阅读全文
posted @ 2016-04-25 22:56
Avatarx
摘要:1.C# Timer用法及实例详解 http://developer.51cto.com/art/200909/149829.htm http://www.cnblogs.com/OpenCoder/archive/2010/02/23/1672043.html 关于C# Timer类 在C#里关于
阅读全文
posted @ 2016-04-25 22:16
Avatarx
摘要:功能函数测试集锦(77) C#专区(114) 功能函数测试集锦(77) C#专区(114) 版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 .net 原则上禁止跨线程访问控件,因为这样可能造成错误的发生,有一种方法是禁止编译器对跨线程访问作
阅读全文
posted @ 2016-04-24 23:08
Avatarx
摘要:本篇文章主要介绍了"C# 网络通信大小端转换类" using System;namespace Framework.NetPackage.Common { /// <summary>/// 字节序转换... C# 与 JAVA / Erlang / AS3 通信 需要转化大小端, 与C++通信不需要
阅读全文
posted @ 2016-04-24 22:39
Avatarx
摘要:Segment成员变量 long long m_index; 记录该segment的索引号。 int* volatile m_state; 状态数组,标识所对应的元素节点的状态,默认值为0,如果该元素节点添加了值,则标记为1。 T* volatile m_array; 队列元素存储空间的指针。 Se
阅读全文
posted @ 2016-04-24 21:33
Avatarx
摘要:ConcurrentQueue<T>队列是一个高效的线程安全的队列,是.Net Framework 4.0,System.Collections.Concurrent命名空间下的一个数据结构。 ConcurrentQueue<T>数据结构 下图是ConcurrentQueue<T>数据结构的示意图:
阅读全文
posted @ 2016-04-24 21:31
Avatarx
摘要:关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String <(StringBuffer,StringBuilder)
阅读全文
posted @ 2016-04-24 21:30
Avatarx
摘要:引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述
阅读全文
posted @ 2016-04-23 14:19
Avatarx

浙公网安备 33010602011771号