2012-07-03 32 views
0

我有一個Web窗體啓動第二個線程中選擇值,我對Web窗體一個DropDownList爲1的選定值當我開始新線程的線程函數中獲得的價值使用獲取DropDownList的使用線程C#

((DropDownList)Page.FindControl("MLprice2_" + _lineRef)).SelectedItem.Value) 

這些作品就好了,問題是當我如DropDownList的值更改爲5功能使用

((DropDownList)Page.FindControl("MLprice2_" + _lineRef)).SelectedItem.Value) 

的線程上仍然得到價值,而不是。

請幫助

+0

您正在閱讀哪個事件設置索引並讀取值? – Akhil

+0

真的不知道,但如果我改變選定的值,然後再次啓動線程功能得到正確的價值,但我必須退出線程,並再次啓動它,這是一個問題,謝謝 – user957541

+0

對不起,感覺真的很愚蠢 – user957541

回答

0

如果您在網頁的生命週期啓動第二個線程,則可能該網頁將已經在第二線程完成處理之前完成其生命週期。該網頁被阻止垃圾收集,因爲它被第二個線程引用(因爲您正在更新網頁)。但客戶端可能已經收到了渲染的網頁,因此第二個線程的結果將不會到達客戶端。它將在服務器(內存中)上更新,但不在客戶端上。

我認爲不同的方法是必要的。你必須做一些額外的異步通信和/或頁面更新(阿賈克斯跳轉到腦海)讓渲染頁面接收信號將下拉列表設置爲5.

+0

謝謝你現在我會修復它添加一個開始/停止按鈕來重新啓動線程,如果下拉列表中的值改變了這種方式,線程函數會得到更新的值 – user957541