封鎖編輯:在Windows Phone上我打電話HttpWebRequest.BeginGetResponse
在一個單獨的線程上, 我開始。然後我調用MessageBox.Show()。問題是直到我關閉MessageBox時才調用回調函數。HttpWebRequest回調被UI
void GetResponseCallback(IAsyncResult asynchronousResult) {
//Not getting called until I dismiss MessageBox
}
void getWeb() {
Thread.Sleep(1000);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.Method = "GET";
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
new Thread(getWeb).Start(); //Start a new thread
MessageBox.Show();
MessageBox應該阻塞後臺線程的回調嗎?
小問題裏面:你爲什麼要創建單獨的線程'新主題(getWeb)'的方法'getWeb()'那已經是異步('request.BeginGetResponse(...)'方法在後臺執行它的工作)? –
這個想法是,我將在後臺線程上有一個循環,在每個請求之間停頓幾分鐘,連續發送Web請求。如果我在UI線程中調用BeginGetResponse,它會解決我的問題嗎? – user1740959
它可能與調用之後的內容*有關,它是否永遠不會調用該方法,或者您打回調方法,並且將調用回UI的代碼不調用?看起來你正在發生某種僵局。 – casperOne