Multithreading 为什么在使用Async.Parallel时我只有一个线程id?
为什么在使用Async.Parallel时我只有一个处理器id 代码: 输出:Multithreading 为什么在使用Async.Parallel时我只有一个线程id?,multithreading,asynchronous,f#,Multithreading,Asynchronous,F#,为什么在使用Async.Parallel时我只有一个处理器id 代码: 输出: 您正在从主线程执行printfn,在异步工作流之外。试试这个: [for i in 1..10 -> async {return sprintf "Processor Id: %d Value: %d" Thread.CurrentThread.ManagedThreadId i}] |> Async.Parallel |> Async.RunSynchronously “托管线程Id
您正在从主线程执行
printfn
,在异步工作流之外。试试这个:
[for i in 1..10 ->
async {return sprintf "Processor Id: %d Value: %d" Thread.CurrentThread.ManagedThreadId i}]
|> Async.Parallel
|> Async.RunSynchronously
“托管线程Id”不是“处理器Id”。我的问题简短而简单。为什么扣分?@FyodorSoikin他没有测量处理器ID。字符串命名错误。
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 = ()
>
[for i in 1..10 ->
async {return sprintf "Processor Id: %d Value: %d" Thread.CurrentThread.ManagedThreadId i}]
|> Async.Parallel
|> Async.RunSynchronously