2015-06-11 24 views
0

我有一個ASP.NET頁面,使Web服務調用,並獲取與數據的迴應,基本上做一個測試調用來監視服務是否啓動或關閉。由於有很多調用正在進行,因此我決定在他們自己的線程中全部運行它們,並在完成並返回後使用響應值更新網頁上的UI。如何使用輔助線程修改標籤?

我已經在Windows Form應用程序中使用this.Invoke方法來使主線程更新標籤文本,但通過搜索,我還沒有找到類似的方法來在ASP中執行此操作。我看到這些服務會返回一個響應,並且更新標籤文本的代碼會在每個輔助線程上運行,但標籤文本都不會更改。

是否有任何其他方式,我可以更改主線程上創建的標籤文本與輔助線程類似於調用將完成?

+3

(之前的評論者指出,原始請求將會很長時間完成,並且線程將在其他地方重新分配)。您可以看看SignalR - 您的後臺線程應該能夠通過集線器發出通知,通知客戶端。它可能需要一些重大的設計更改/改造。 – StuartLC

回答

0

這聽起來像你正在尋找執行AJAX調用。如果您使用ASP.NET Web窗體,則需要使用UpdatePanelScriptManager控件來啓用部分頁面更新。

Take a look at Microsoft's introduction to the UpdatePanel control

如果你使用MVC或SignalR還有其他方法可以做到這一點,但我假設爲一個WinForms開發者,你有可能使用的WebForms。

+0

我有一個更新面板已經在ScriptManager中。我曾嘗試在線程調用的方法結束時調用updatePanel.Update()方法。仍然看不到用戶界面上的更改。 – RJ130

+0

@ RJ130你能在某些源代碼中編輯原始問題嗎?看到你在做什麼將有助於理解爲什麼它不起作用。 – RavB