代码之家  ›  专栏  ›  技术社区  ›  esac

如何为tcplistener编写自己的异步包装器?

  •  5
  • esac  · 技术社区  · 15 年前

    两者都没有F异步包装器(在电源组中) TcpListener.BeginAcceptTcpClient() 也不 EndAcceptTcpClient() .

    我该如何用自己的包装纸来包装这些东西,以便使用 let! async 关键字并并行运行?

    1 回复  |  直到 10 年前
        1
  •  6
  •   kvb    15 年前

    你检查过 Async.BuildPrimitive 功能?我想你可以做些类似的事情:

    type TcpListener with
      member x.AsyncAcceptClient() = 
        Async.BuildPrimitive(x.BeginAcceptTcpClient, x.EndAcceptTcpClient)
    

    创建一个返回适当异步结果的扩展方法。