Parallel processing 并行处理后将结果追加到数组

Parallel processing 并行处理后将结果追加到数组,parallel-processing,f#,Parallel Processing,F#,一些口才问题: A.如何以一种雄辩的方式将并行处理形成的列表直接添加到并发结果数组中 let results = System.Collections.Concurrent.ConcurrentBag<string>() let tasks = System.Collections.Generic.List<string>() tasks.add("a") tasks.add("b") let answers = tasks |> Seq.map

一些口才问题:

A.如何以一种雄辩的方式将并行处理形成的列表直接添加到并发结果数组中

let results = System.Collections.Concurrent.ConcurrentBag<string>()
let tasks = System.Collections.Generic.List<string>()
tasks.add("a")
tasks.add("b")

let answers = tasks
        |> Seq.map asyncRequest
        |> Async.Parallel
        |> Async.RunSynchronously
        |> Array.toList

Array.append results answers

有没有办法通过列表构造函数添加项目

let tasks = System.Collections.Generic.List<string>()
tasks.add("a")
tasks.add("b")
let items: string[] = [|"a", "b", "c"|]
let jobs = System.Collections.Generic.Queue<string>()

items |> Array.map jobs.Enqueue |> ignore
let tasks=System.Collections.Generic.List()
任务。添加(“a”)
任务。添加(“b”)

是否有一种使用队列构造函数从数组构造队列的方法

let tasks = System.Collections.Generic.List<string>()
tasks.add("a")
tasks.add("b")
let items: string[] = [|"a", "b", "c"|]
let jobs = System.Collections.Generic.Queue<string>()

items |> Array.map jobs.Enqueue |> ignore
let项:字符串[]=[|“a”、“b”、“c”|]
让作业=System.Collections.Generic.Queue()
items |>Array.map jobs.Enqueue |>ignore

A.您不能在
结果上使用
数组。append
,因为
结果
是一个
并发包
,但是
数组。append
希望它的参数是
数组
。要将内容添加到
ConcurrentBag
,请使用其。逐个添加项目:

tasks
    |> Seq.map asyncRequest
    |> Async.Parallel
    |> Async.RunSynchronously
    |> Array.iter results.Add
一个一个地添加项目有点低效。如果你的<代码>并发包确实是在同一函数中创建的,正如你的例子所示,你可以考虑使用它:

将参数括在括号中(如您尝试的那样)不是必需的,但允许:

tasks.Add("a")
tasks.Add("b")
C.是的,有一种方法可以从数组构造队列。
队列
类具有,并且数组实现了
IEnumerable
,因此您可以在数组上调用该构造函数:

let jobs = System.Collections.Generic.Queue<string>( items )
let jobs=System.Collections.Generic.Queue(项)


请注意您几乎不需要我的帮助就可以获得上述任何信息。所有内容都可以在MSDN(见上面的链接)或您最喜欢的代码编辑器中的autocompletion/intellisense上免费获得。

A.您不能使用
数组。在
结果上追加
,因为
结果
是一个
并发包
,但是
Array.append
希望它的参数是
Array
。要将内容添加到
ConcurrentBag
,请使用其。逐个添加项目:

tasks
    |> Seq.map asyncRequest
    |> Async.Parallel
    |> Async.RunSynchronously
    |> Array.iter results.Add
一个一个地添加项目有点低效。如果你的<代码>并发包确实是在同一函数中创建的,正如你的例子所示,你可以考虑使用它:

将参数括在括号中(如您尝试的那样)不是必需的,但允许:

tasks.Add("a")
tasks.Add("b")
C.是的,有一种方法可以从数组构造队列。
队列
类具有,并且数组实现了
IEnumerable
,因此您可以在数组上调用该构造函数:

let jobs = System.Collections.Generic.Queue<string>( items )
let jobs=System.Collections.Generic.Queue(项)


请注意您几乎不需要我的帮助就可以获得上述任何信息。MSDN(见上面的链接)或您最喜欢的代码编辑器中的autocompletion/intellisense都可以免费获取所有内容。

我想您最好在这里问所有这些问题:我看不到在那里发布消息的选项。我可以看到聊天室。我想我没有被授权聊天room@Developer11-,所以您应该能够。当我点击聊天室时,屏幕底部有一个大条,上面有一个文本框和两个按钮:“发送”和“上传…”。“发送”按钮将发布聊天信息。当你点击聊天室时,你看到那个条和那些按钮了吗?如果你不这样做,就会发生一些不寻常的事情。更新:没关系,只是注意到你在聊天室里发了好几次帖子,所以很明显你找到了答案。是的,一开始,问题是点击通知会把我带到不提供发送消息的聊天记录,我想你最好在这里问所有这些问题:我看不到在那里张贴消息的选项。我可以看到聊天室。我想我没有被授权聊天room@Developer11-,所以您应该能够。当我点击聊天室时,屏幕底部有一个大条,上面有一个文本框和两个按钮:“发送”和“上传…”。“发送”按钮将发布聊天信息。当你点击聊天室时,你看到那个条和那些按钮了吗?如果你不这样做,就会发生一些不寻常的事情。更新:没关系,只是注意到你在聊天室里发了好几次帖子,所以很明显你找到了答案。是的,最初的问题是,点击通知会让我进入聊天记录,它不提供发送消息的功能,只会浏览所有的聊天室,然后F#工作了。