2013-07-23 26 views
0

在一些舊代碼的前瞻性和有問題的程序員使用cfexecute timeout = 0與cfthread一樣好action =運行如果不需要輸出?

<cfthread action="run"> 
    <cfexecute name="c:\myapp.exe" timeout="30"> 
</cfthread> 

可以在一個安全的替代上面這個代碼?

<cfexecute name="c:\myapp.exe" timeout="0"> 

CF是否會在代碼中產生一個線程呢?線程將被計入「可用於CFTHREAD的最大線程數」?

回答

2

如果意圖是有一個非阻塞的代碼流,那麼你可以安全地用你的代碼替換早先的代碼。

在我的理解中,當CF得到timeout =「0」時,它不會創建一個線程。它必須只是調用exe(這會在服務器上創建一個新進程),並且永遠不會等待進程回覆。因此,沒有任何內容被添加到線程限制計數中。