在C#.NET會發生什麼,讓我們來看看下面的例子C#Web服務 - 返回然後最後 - 第一
[WebMethod]
public int TakeAction()
{
try {
//Call method A
Return 1;
} catch (Exception e) {
//Call method B
Return 0;
} finally {
//Call method C
}
}
現在讓我們假設方法C是一個長期運行的進程。
調用TakeAction的客戶端在調用方法C之前還是在調用/完成之後取回返回值?
此外,即使返回是[評估]在finally塊之前......我的主要問題是要找出調用者接收回來的點回報/迴應?終於執行之前或之後? – adam
@adam:finally塊執行後 - 這就是我所說的「控制權傳遞給調用者」。檢查這一點很容易 - 只需運行我所展示的代碼即可。在打印10之前它將打印「Before Foo return」。 –
當然可以,謝謝Jon!我預計這對於Web服務的工作方式是一樣的嗎? – adam