gpt4 book ai didi

python - 收集 IronPython 并行循环结果

转载 作者:行者123 更新时间:2023-12-01 07:58:13 25 4
gpt4 key购买 nike

我正在尝试从 IronPython 中的任务方法获取结果,类似于results.get使用 CPython multiprocessing.Queue

from System.Threading.Tasks import *
def testThread(dataPnt,constData):
return dataPnt

def main():

dataToSplit = range(5)
constData = 10

threadResult = Parallel.ForEach(dataToSplit, lambda dataPnt: testThread(dataPnt,constData))

print(threadResult)

main()

此时threadResult为System.Threading.Tasks.ParallelLoopResult但我找不到任何像样的文档。最接近的是this post但它正在递增,我需要返回一个数组。

最佳答案

Parallel.ForEach是一个多处理操作,但考虑到您期望操作的结果,您必须使用共享结果变量(例如某种 concurrent collection )或使用 parallel LINQ projection operation .

接近您的示例的方法可能如下所示:

# get LINQ dependencies
import clr
clr.AddReference("System.Core")
import System
clr.ImportExtensions(System.Linq)

from System.Threading.Tasks import *
def testThread(dataPnt,constData):
print dataPnt
return dataPnt

def main():

dataToSplit = range(5)
constData = 10

threadResult = dataToSplit.AsParallel().Select(lambda dataPnt: testThread(dataPnt,constData)).ToList()

print(threadResult)

main()

关于python - 收集 IronPython 并行循环结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55841283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com