今天算这些天比较闲的时候,没有项目进度的催促,更多的时间是来看一些自己感兴趣的一些东西,看了一些C#的基本知识点还是很有收获的,主要几点是很基础的一些定义和实现。
如对象的内存模型,委托事件和多线程。大概学到了一些很基本的东西。
1 栈内存 先进先出
编译器分配 保存一些局部变量和函数的参数等 如 int a =1;
2 堆内存 随意分配 受限于虚拟内存
通过new关键字申请
如 student xiaoming = new student();
首先编译器在栈内存上分配地址 然后在堆内存上开辟内存来存student 最后把堆上的内存地址存储到变量xiaoming中
对于委托其实没很深的印象,只能说是很简单的了解。
了解的算比较深的是对于线程的解析。
也试着学着网上的例子自己也写了点
一个关于委托的主线程和异步线程的小例子
delegate string Mydelegate(string name);
static void Main(string[] args)
{
ThreadMessage("start");
//建立委托
Mydelegate mydelegate = new Mydelegate(Hello);
//异步调用委托
IAsyncResult result = mydelegate.BeginInvoke("lllll",null,null);
//完成主线
//这里是在异步调用完成之前主线完成其他的任务
while (!result.IsCompleted)
{
Thread.Sleep(200);
Console.WriteLine("主线继续完成其他的任务");
}
//异步完成之后才获取结果
string data = mydelegate.EndInvoke(result);
Console.WriteLine(data);
Console.ReadKey();
}
static string Hello(string name)
{
ThreadMessage("Async Thread start");
Thread.Sleep(2000);
return "Hello" + name;
}
static void ThreadMessage(string data)
{
string message = string.Format("{0}
currentThreadId is {1}", data, Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(message);
}
今天就总结这么多吧。。。慢慢来。