• SynchronizationContext笔记


      SynchronizationContext 类是一个基类,可提供不带同步的自由线程上下文。 此类实现的同步模型的目的是使公共语言运行库内部的异步/同步操作能够针对不同的异步模型采取正确的行为。此模型还简化了托管应用程序为在不同的同步环境下正常工作而必须遵循的一些要求。同步模型的提供程序可以扩展此类并为这些方法提供自己的实现。
      简而言之就是允许一个线程和另外一个线程进行通讯,SynchronizationContext在通讯中充当传输者的角色。另外这里有个地方需要清楚的,不是每个线程都附加SynchronizationContext这个对象,只有UI线程是一直拥有的。

    Current 获取当前同步上下文

    var context = SynchronizationContext.Current;

    Send 一个同步消息调度到一个同步上下文。

    SendOrPostCallback callback = o =>
                                                  {
                                                      //TODO:
                                                  };
    context.Send(callback,null);

    send调用后会阻塞直到调用完成。

    Post 将异步消息调度到一个同步上下文。

    SendOrPostCallback callback = o =>
                                                  {
                                                      //TODO:
                                                  };
    context.Post(callback,null);

    和send的调用方法一样,不过Post会启动一个线程来调用,不会阻塞当前线程。

  • 相关阅读:
    poj 3255
    (DP) bzoj 2091
    (最短路) bzoj 2118
    (点双联通分量) poj 2942
    (树直径) bzoj 1509
    (离线处理+BFS) poi Tales of seafaring
    (并查集+DFS) poi guilds
    (记忆话搜索)POI Fibonacci Representation
    (DP) POI Bytecomputer
    (DP) bzoj 1296
  • 原文地址:https://www.cnblogs.com/wzwyc/p/7508764.html
Copyright © 2020-2023  润新知