我們爲WPF(UI)應用程序創建了WCF RESTful服務。 UI向WCF服務發送請求,然後在BLL中調用合適的方法,然後調用DAL中的方法。所有這些層已使用IOC/DI分開。來自WCF的Ansync線程RESTful服務
現在,對於一個新功能,我們希望當一個特定類型的新對象被添加到數據庫時,它應該經過3個步驟,這將在一個單獨的線程中執行。
也就是說,如果服務向BLL發送一個請求,向數據庫中添加一個新的對象OBJ,BLL應該通過DAL將對象保存到數據庫中,然後啓動一個新線程來對對象執行一些操作阻止WCF請求。
但是,只要我們通過在BLL中啓動一個新線程來嘗試這樣做,應用程序就會崩潰。這是因爲數據庫上下文的'InRequestScope'對象已經被處置,線程無法更新數據庫。此外,WCF請求在線程完成之前不會結束,但返回值已提供且BLL方法已完成執行。
任何幫助將被重視。
我們更希望在服務器上運行一個進程,以便客戶端不會一直等待響應。更多的服務器端進程意味着即使客戶端關閉,它也會執行。並且還會減少服務器上的流量。 – 2012-03-26 19:53:19