2012-11-01 70 views
0

之前,我有3類如何停止執行方法的最後一個結束

  • 視圖類
  • 請求類
  • 響應等級

IA調用我的請求類的兩種方法從我的觀點來看,就像這樣;

[eRequests GetM:IdString]; 
[eRequests GetY:IdString SubID:subIdString]; 

我的線程開始執行的第一線,雖然它的進程,然後下一個請求開始之前的第一個甚至回來半路得到。

我想阻止這種情況發生,但我並不確定如何繼續。

的事情那是阻止我的是,這樣的要求會經過這些步驟

  1. 呼叫請求方法 - 內viewClass類
  2. 創建數據包併發送請求,接收數據從數據庫返回的 - 裏面Requestclass
  3. 將數據發送到ResponseClass - 內部Requestclass
  4. 解碼數據,併發送相關的信息回接收機方法在viewClass類 - 響應類內

我常常停下來的事情是當線程返回到viewclass但是在不同的方法中時我該如何回到第二個請求?

無論如何,如果任何人都可以提供一些幫助,讓我執行一個方法調用一次,將非常感激!

回答

0

你的描述非常混亂。什麼是執行發佈代碼的「我的線程」?它是請求線程還是響應線程?爲什麼你需要「回到第二個請求」?步驟1-4試圖解釋它是Response對象,它將回調到View,然後在下一句再次談到Request?那麼,哪個線程?

從您使用我只是猜測,你有簡單的競爭條件怎麼回事,這意味着eRequest是一個共享資源,併爲這種需要被mutexed

@synchronized(eRequests) { 
[eRequests GetM:IdString]; 
[eRequests GetY:IdString SubID:subIdString]; 
} 

但我還是不要的話不理解「回到第二個請求」部分。