Sco*_*rod 3 f# multithreading asynchronous
使用Async.Parallel时,为什么我只有一个处理器ID?
码:
open System
open System.Threading
[for i in 1..10 -> async {return i}] |> Async.Parallel
|> Async.RunSynchronously
|> Seq.iter (fun i -> printfn "Processor Id: %d Value: %d" Thread.CurrentThread.ManagedThreadId i)
Run Code Online (Sandbox Code Playgroud)
输出:
Run Code Online (Sandbox Code Playgroud)Processor Id: 1 Value: 1 Processor Id: 1 Value: 2 Processor Id: 1 Value: 3 Processor Id: 1 Value: 4 Processor Id: 1 Value: 5 Processor Id: 1 Value: 6 Processor Id: 1 Value: 7 Processor Id: 1 Value: 8 Processor Id: 1 Value: 9 Processor Id: 1 Value: 10
val it : unit = ()
>
Run Code Online (Sandbox Code Playgroud)
您在printfn异步工作流程之外的主线程中执行此操作.试试这个:
[for i in 1..10 ->
async {return sprintf "Processor Id: %d Value: %d" Thread.CurrentThread.ManagedThreadId i}]
|> Async.Parallel
|> Async.RunSynchronously
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |