gpt4 book ai didi

coldfusion - 使用 cfthread join 获取在 cfloop 中运行的变量的值

转载 作者:行者123 更新时间:2023-12-04 17:41:24 24 4
gpt4 key购买 nike

感谢回复!!但我仍然无法做到。我得到的错误是
“元素 objGet1 在类型为 Coldfusion.runtime.VariableScope 的 Java 对象中未定义。”

下面是我的完整代码。我只想转储包含 cfhttp 信息的每个线程的值。

http://www.google.com/search?"& "q=Vin+Diesel"& "&num=10"& "&start=")/>

<cfset intStartTime = GetTickCount() />

<cfloop index="intGet" from="1" to="10" step="1">

<!--- Start a new thread for this CFHttp call. --->
<cfthread action="run" name="objGet#intGet#">

<cfhttp method="GET" url="#strBaseURL##((intGet - 1) * 10)#" useragent="#CGI.http_user_agent#" result="THREAD.Get#intGet#" />

</cfthread>

</cfloop>

<cfloop index="intGet" from="1" to="10" step="1">

<cfthread action="join" name="objGet#intGet#" />
<cfdump var="#Variables['objGet'&intGet]#"><br />

</cfloop>



当我在循环内加入线程后使用时。我得到了想要的结果
谢谢!!

最佳答案

这里发生了两个问题。

正如 Zugwalt 所指出的,您需要显式地传入要在线程范围内引用的变量。他错过了 CGI 变量,该范围不存在于您的线程中。所以我们只传入我们需要在线程中使用的东西,userAgent,strBaseURL 和 intGet。

第二个问题,一旦加入,你的线程不在变量范围内,它们在 cfthread 范围内,所以我们必须从那里读取它们。

更正的代码:

<cfloop index="intGet" from="1" to="2" step="1">

<!--- Start a new thread for this CFHttp call. Pass in user Agent, strBaseURL, and intGet --->
<cfthread action="run" name="objGet#intGet#" userAgent="#cgi.http_user_agent#" intGet="#intGet#" strBaseURL="#strBaseURL#">

<!--- Store the http request into the thread scope, so it will be visible after joining--->
<cfhttp method="GET" url="#strBaseURL & ((intGet - 1) * 10)#" userAgent="#userAgent#" result="thread.get#intGet#" />

</cfthread>

</cfloop>

<cfloop index="intGet" from="1" to="2" step="1">

<!--- Join each thread --->
<cfthread action="join" name="objGet#intGet#" />
<!--- Dump each named thread from the cfthread scope --->
<cfdump var="#cfthread['objGet#intGet#']#" />

</cfloop>

关于coldfusion - 使用 cfthread join 获取在 cfloop 中运行的变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3248513/

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