如何在最后一个完成之前停止执行方法

时间:2012-11-01 01:51:00

标签: ios multithreading methods

我有3个班级

  • 查看课程
  • 申请类
  • 响应级

我在我的视图类中调用我的请求类中的两个方法,如此;

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

我的线程开始执行第一行并在其进程中途中途,然后下一个请求在第一个请求返回之前开始。

我想阻止这种情况发生,但我不确定如何继续。

阻止我的是这样的请求会经历这些步骤

  1. 调用请求方法 - 在ViewClass中
  2. 创建数据包并发送请求接收从db返回的数据 - 在Requestclass
  3. 将数据发送到ResponseClass - 在Requestclass
  4. 解码数据并将相关信息发送回ViewClass中的receiver方法 - 在Response Class
  5. 我坚持认为,当线程返回到视图类但在不同的方法中,我该如何回到第二个请求?

    无论如何,如果有人可以提供一些帮助,允许我在非常感激的时候执行一个方法调用!

1 个答案:

答案 0 :(得分:0)

您的描述非常混乱。执行发布代码的“我的主题”是什么?是请求线程还是响应线程?为什么你需要“回到第二个请求”?步骤1-4试图解释它是回调View的Response对象,然后在下一句话中再次谈论Request?那么它是哪个线程?

从你正在使用的词语中我只是猜测你有简单的竞争条件,这意味着eRequest是一个共享资源,因此需要互斥

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

但我仍然不理解“回到第二个请求”部分。