标签:
1、C#的执行是同步的
2、JavaScript的执行是异步的
3、C#多线程的使用需注意多线程的同步
4、有数据的存储就涉及到数据的检索(例如:C#集合(Collection);数据库)
5、同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行。委托的同步调用通过Invoke方法来实现(C#)
6、异步调用不阻塞线程,而是把调用塞到线程池中,程序主线程或UI线程可以继续执行。委托的异步调用通过BeginInvoke和EndInvoke来实现(C#)
7、委托(Delegate)特别用于实现事件和回调方法。就是叫别人帮你做事
8、.Net的公用语言运行时(Common Language Runtime,CLR)能区分两种不同类型的线程:前台线程和后台线程。这两者的区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。
9、C#获取应用进程的线程数
1)打开任务管理器,查看---选择列----线程计数 勾起来后,就可以查看到每个程序的线程数了
2)
using System.Diagnostics; Process.GetCurrentProcess().Threads.Count;
3)
int n = 0; foreach (System.Diagnostics.ProcessThread th in System.Diagnostics.Process.GetCurrentProcess().Threads) { if (th.ThreadState == System.Diagnostics.ThreadState.Running) { n++; } }
10、C#中实现异步调用流程:
1)、创建一个异步处理函数,并针对其定义一个委托;
2)、在调用函数的时候,使用委托的BeginInvoke方法,指定在函数处理完成时的回调函数(如果不需要对完成事件做处理,可以给null值),并指定所需的参数(如果没有参数,也可以给null值);
3)、在回调函数中处理完成事件。
注:EndInvoke会使得调用线程阻塞,直到异步函数处理完成。显然,紧接在BeginInvoke后面的EndInvoke使用方式与同步调用等价。
.NET处理异步函数调用,事实上是通过线程来完成的。这个过程有以下几个特点:
学习博文《C#基础:异步调用》
11、领域驱动设计(DDD)
http://www.cnblogs.com/netfocus/
12、CQRS模式:命令查询职责分离模式
http://www.cnblogs.com/netfocus/
......
标签:
原文地址:http://www.cnblogs.com/yuzhihui/p/5507685.html