2011-03-15 64 views
0

我的代碼中有一些地方使用WorkflowInvoker.Invoke方法調用一個活動。我遇到很多性能問題,因爲每次需要調用此操作時都會創建一個活動。Workflow Foundation 4:活動緩存線程安全?

根據this MSDN Blog post,我應該緩存活動並運行相同的活動實例,而不是創建一個新實例。

但是,我的應用程序是多線程的。許多線程使用相同的Activity實例是否安全?根據the MSDN documentation,它表示它不是線程安全的,但它看起來像幾乎所有類的標準消息。

我懷疑它應該是線程安全的,因爲活動使用的數據存儲在單獨的上下文中(作爲變量和參數)而不是活動類的普通實例成員。

回答

2

我發現共享相同Activity實例的線程沒有問題。這是有道理的,因爲數據通過上下文(而不是活動對象的屬性)傳遞到活動中。活動緩存顯着提高了性能。

相關問題