2009-09-14 20 views
1

以下是方案。我有許多以網格格式向用戶顯示數據的Sharepoint Web部件。它們都連接到導航Web部件,用戶可以使用該部件爲每個數據網格選擇參數。在後端,網格Web部件調用DI容器來獲得「IDataProvider」,它查詢一些SoR並返回一個數據表。Sharepoint Web部件的並行服務器端處理

以下是我想要做的事情:我希望網格Web部件能夠並行執行而不是串行執行,因爲我們的許多「IDataProvider」實現調用Web服務。我嘗試在WebPartManager.ConnectionsActivated事件中使用「OnPreRender」方法中的「等待」標誌來暫停BackgroundWorker,但服務器拋出一個錯誤,指出不允許異步操作。當我嘗試在頁面佈局上將「Async」標誌設置爲true時,出現一個錯誤,告訴我sharepoint explicity禁止將「Async」標誌設置爲true。

是否有解決方法?

回答

1

DivisionByZorro,

首先,我愛:-)

名稱不要懼怕的WebParts可以異步/運行多線程沒有太多的額外工作。您只需要通過Page.RegisterAsyncTask註冊適當的事件處理程序。您將指定應該異步調用的方法,以及一旦處理完成後控件將返回的回調方法。

Daniel Larson在他的文章(http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!180.entry)和(http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!192.entry)中提供了一些很好的報道。他還涵蓋了一些監視和其他問題。

我希望這有助於!

+0

這正是我在尋找的東西。它甚至看起來很簡單(或者至少,就像這樣的事情一樣簡單)。謝謝! – DivisionByZorro 2009-09-14 21:00:40