线程与委托

线程
线程是程序中独立的指令流。使用 C#编写任何程序时,都有一个入口点:Main()方法。程序从 Main()方 法的第一条语句开始执行,直到这个方法返回为止。 这种程序结构非常适合于其中有一个可识别的任务序列的程序,但程序常常需要同时完成多个 任务。线程对客户端和服务器端应用程序都非常重要。在 Visual Studio编辑器中输入 C#代码 时,系 统会分析代码,用下划线标出遗漏的分号或其他语法错误,这用一个后台线程完成。McrosoftWord 程、任务和同步 ! I 第Ⅲ部分 基 础 的拼写检查器也会做相同的事。一个线程等待用户输入,而另一个线程进行后台搜索。第 3个线程 将写入的数据存储在临时文件中,第 4个线程从htemet上 下载其他数据。 运行在服务器上的应用程序中,等待客户请求的线程,称为侦听器线程。只要接收到请求,就 把它传递给另一个工作线程,之后继续与客户通信。侦听器线程会立即返回,接收下一个客户发送 的下一个请求。 进程包含资源,如 Whdow句柄、文件系统句柄或其他内核对象。每个进程都分配了虚拟内存。 一个进程至少包含一个线程。操作系统会调度线程。线程有一个优先级、实际上正在处理的程序的 位置计数器、一个存储其局部变量的栈。每个线程都有自己的栈,但程序代码的内存和堆由一个进 程的所有线程共享。这使一个进程的所有线程之间的通信非常快=一该进程的所有线程都寻址相同 的虚拟内存。但是,这也使处理比较困难,因为多个线程可以修改同一个内存位置。 进程管理的资源包括虚拟内存和Window句柄,其中至少包含一个线程。线程是运行程序所必需的。
异步委托。创建线程的一种简单方式是定义一个委托,并异步调用它。委托是方法的类型 安全的引用。Delegate类 还支持异步地调用方法。在后台,Delegate类 会创建一个执行任务的线程。
为了说明委托的异步特性,从一个需要一定的时间才能执行完毕的方法开始。TakesWhile()方法至少需要经过第 2个变量传递的毫秒数才能执行完,因为它调用Thread.Sleep()方法:
static int TakesWhlie(int date, int ms)
{
Console.WriteL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值