0

我有 3 节课

  • 查看课程
  • 请求类
  • 响应类

Ia 从我的视图类中调用我的请求类中的两个方法,如下所示;

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

我的线程开始执行第一行并在它的进程中进行到一半,然后下一个请求甚至在第一个请求返回之前就开始了。

我想防止这种情况发生,但是我不确定如何进行。

阻止我的是像这样的请求将通过这些步骤

  1. 调用请求方法 - ViewClass 内部
  2. 创建数据包并发送请求接收从数据库返回的数据 - 内部请求类
  3. 将数据发送到 ResponseClass - 在 Requestclass 中
  4. 解码数据并将相关信息发送回 ViewClass 中的接收器方法 - 内部响应类

我一直坚持的事情是当线程回到视图类但在不同的方法中我如何回到第二个请求?

无论如何,如果有人可以提供一些帮助,让我一次执行一个方法调用,将不胜感激!

4

1 回答 1

0

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

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

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

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

于 2012-11-01T14:36:50.173 回答