zoukankan      html  css  js  c++  java
  • c# begin & end.

    begin & end

    1.
    begin的时候,应该是只注册了事件。和io没有交集,马上就进入了下一条语句。
    而回调的事件,如果没有触发,并不会立刻有线程去执行这个回调方法。

    2.
    当接受到连接,或数据,从一般来说,应该是操作系统,马上唤醒挂起的线程。
    而begin & end , 测试发现,并没有挂起任何线程,那么估计是 .net 框架已经帮我们启动了新线程 挂断在 等待io上,所以vs并不知掉。
    一旦有数据到来,操作系统唤醒 .net 框架的线程,而这个线程马上会执行我们在begin中注册的事件。

    3.
    end
    网上都说有线程挂起在end上。打断点发现。根本不会有线程挂断在end上。这个。。。。。。。。。

    所以,begin只注册事件。当有对应事件触发后,会有另外一个线程来调用 回调函数,当执行到end 的时候,可能会有一些不可告人的事情处理。
    而不是begin之后,马上有线程执行回调,并挂断在end上。

    4,

    观察了下vs   的线程运行时间,猜测是.net的线程挂起在等待io上,而不是我们的end上。有事件,就调用注册的事件。

  • 相关阅读:
    python学习笔记1--datetime的使用
    python学习笔记2--子类父类继承时的参数传递
    python学习笔记1--错误,异常,调试
    JS同异步编程
    AMD /CMD
    i++ && ++i
    将url问号后面的参数变成对象
    字符串的常用方法
    函数 && 函数运行机制
    Math数学函数及常用方法
  • 原文地址:https://www.cnblogs.com/lsfv/p/8243726.html
Copyright © 2011-2022 走看看