我不确定你所说的“原始”是什么意思。Async.Parallel是一个函数。以下是运行两个异步的几种方法:
在平行下:
Async.Parallel([|async1; async2|])
或者
async {
  let! child = Async.StartChild async2
  let! result1 = child
  let! result2 = async1
  return [|result1; result2|]
}
依次:
async {
  let! result1 = async1
  let! result2 = async2
  return [|result1; result2|]
}
您可以在最后两个中返回元组。我保持返回类型与第一个相同。
我会说let!,do!在一个async { }块中,你将尽可能接近为此使用原语。
编辑
如果你遇到了所有这些讨厌的语法,你可以定义一个组合器:
let (<|>) async1 async2 = 
  async {
    let! r1 = async1
    let! r2 = async2
    return r1, r2
  }
然后做:
async1 <|> async2 |> Async.RunSynchronously