C#学习笔记
来源:互联网 发布:网络试衣间 编辑:程序博客网 时间:2024/06/03 15:58
1.
1. 接口作用
http://blog.jobbole.com/85751/
2. 命名空间
http://blog.csdn.net/beyondqd/article/details/6696936
3. 序列化与反序列化
序列化:将对象状态转换为可保持或传输的格式的过程(保存文件内容);
反序列化:将内容即流转换为对象(读取文件内容);
xml文件的序列化与反序列化的示例:
#config是根据xml的格式定义的一个类,file是xml文件的路径public static Config LoadConfig(string file){ XmlSerializer xs = new XmlSerializer(typeof(Config)); StreamReader sr = new StreamReader(file); Config config = xs.Deserialize(sr) as Config; sr.Close(); return config;}public void SaveConfig(string file){ XmlSerializer xs = new XmlSerializer(typeof(Config)); StreamWriter sw = new StreamWriter(file); xs.Serialize(sw, this); sw.Close();}
4. Invoke BeginInvoke
http://www.cnblogs.com/zhangchenliang/p/4953649.html
5. 事件(event)
http://blog.csdn.net/cgguang/article/details/53103503
6. XML
http://www.cnblogs.com/tomin/archive/2009/02/27/1399566.html
7. 读写配置文件
http://www.cnblogs.com/wayfarer/archive/2004/07/16/24783.html
8. 线程同步
所谓同步:是指在某一时刻只有一个线程可以访问变量。
如果不能确保对变量的访问是同步的,就会产生错误。
c#为同步访问变量提供了一个非常简单的方式,即使用c#语言的关键字Lock,它可以把一段代码定义为互斥段,互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在c#中,关键字Lock定义如下:
Lock(expression)
{
statement_block
}
expression代表你希望跟踪的对象:
如果你想保护一个类的实例,一般地,你可以使用this;
如果你想保护一个静态变量(如互斥代码段在一个静态方法内部),一般使用类名就可以了
而statement_block就算互斥段的代码,这段代码在一个时刻内只可能被一个线程执行。
以书店卖书为例
http://blog.csdn.net/ermao_zbp/article/details/78293782?locationNum=4&fps=1
8. 互斥锁
互斥锁(lock)
lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。当任何一个线程获取到锁后,其他线程如果需要使用该临界区内代码,则必须等待前一个线程使用完毕后释放锁。
代码示例:
Object thisLock = new Object(); lock (thisLock) { // 临界区代码块 }
- C#学习笔记 ----C#变量
- c#学习笔记(1)
- C#学习笔记
- C# 学习笔记
- C#学习笔记(一)
- C#学习笔记(二)
- C#学习笔记(三)
- c#学习笔记
- C#学习笔记
- C#学习笔记
- C#学习笔记
- c#深入学习笔记
- C#学习笔记(1)
- C#学习笔记之一
- C#学习笔记
- C# 学习笔记
- C#学习笔记--Position
- C#学习笔记--BindingContext()
- jupyter notebook 多个python kernel配置
- 设计模式-组合模式
- Remove Duplicates from Sorted Array II
- Session 和 Cookie 的比较
- Servlet处理流程分析
- C#学习笔记
- [bzoj5042][ST表]LWD的分科岛
- A SQLiteConnection object for database '/data/user/0/com.google.android.gms/
- 列表渲染
- Messages:This method: edit for action XXX is not allowed!-Struts2.5动态方法调用错误解决方法
- 【deeplearning.ai】第二门课:提升深层神经网络——偏差和方差
- 【51Nod1952】栈
- dubbo入门官方案例学习
- springmvc上传图片方法