Unable to start IDL_IDLBRIDGE worker process: 管道已结束。
时间: 2024-03-29 14:40:42 浏览: 527
这个错误通常是由于IDL_IDLBRIDGE worker进程意外终止导致的。可能的原因包括IDL程序崩溃、IDL程序等待用户输入或者IDL程序运行时间过长导致超时终止。请检查相关的日志文件以了解更多信息,并尝试重新启动IDL_IDLBRIDGE worker进程。如果问题持续存在,请尝试检查IDL程序的代码以查找潜在的错误。
相关问题
IDL_IDLBridge
IDL_IDLBridge是一个用于在IDL中启动子进程并执行代码的对象。通过创建IDL_IDLBridge对象并调用Execute方法,可以在IDL中启动子进程并执行指定的IDL代码。[1]
使用IDL_IDLBridge可以实现在异步计算中使用多进程加速数据处理的目的。通过在一个IDL进程等待的同时完成更多的处理,充分利用PC的CPU算力。
以下是使用IDL_IDLBridge的代码示例:
compile_opt idl2
obridge = obj_new('IDL_IDLBridge')
childprofile1='Full path to your IDL file'
obridge->Execute,'.compile "' childprofile1 '"'
obridge->Execute,'IDL file name',/NOWAIT
IDL_IDLBridge还可以实现并行算法,特别适用于逐行计算的处理问题。可以通过设置回调函数来获取具体的执行信息,或者使用dialog_message函数来模拟print语句的效果。下面是一个示例代码:
function_position = 'C:\Users\DN\Documents\IDL\mult2.pro'
b='xpnp'
oBridge2 = OBJ_NEW('IDL_IDLBridge',CALLBACK='demo_bridge_call')
oBridge2->Execute,".compile " "'" Function_position "'"
oBridge2->Setvar,"str",b
oBridge2->Execute,"xxx=mult(str)",/nowait
print,'xgggx',oBridge2->status()
while(1) do begin
sg=oBridge2->status()
if(sg eq 0) then break
endwhile
pro demo_bridge_call, status, error, oBr
CASE status of
2: str="Completed"
3: str="Error: " error
4: str=error ; Aborted message
ENDCASE
print,'str::',str
END
另外,IDL_IDLBridge还可以同时开启多个进程来处理数据。以下是一个示例代码:
pro MultiProcesses
;开启3个进程同时处理数据
compile_opt idl2
obridge1 = obj_new('IDL_IDLBridge')
childprofile1='F:\Mekong_MultiRun\mekong_2010.pro'
obridge1->Execute,'.compile "' childprofile1 '"'
obridge1->Execute,'mekong_2010',/NOWAIT
obridge2 = obj_new('IDL_IDLBridge')
childprofile2='F:\Mekong_MultiRun\mekong_2011.pro'
obridge2->Execute,'.compile "' childprofile2 '"'
obridge2->Execute,'mekong_2011',/NOWAIT
obridge3 = obj_new('IDL_IDLBridge')
childprofile3='F:\Mekong_MultiRun\mekong_2012.pro'
obridge3->Execute,'.compile "' childprofile3 '"'
obridge3->Execute,'np_mekong_2012',/NOWAIT
END
总结:IDL_IDLBridge是一个用于在IDL中启动子进程并执行代码的对象。它可以实现异步计算和多进程加速数据处理,并提供了一些回调函数和工具函数来获取执行信息和模拟print语句的效果。可以根据需要创建多个IDL_IDLBridge对象来同时处理多个任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文