2012-11-01 33 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]; 
} 

但我还是不要的话不理解“回到第二个请求”部分。