2010-11-12 112 views
1

我正在Android Juint中实现一个测试用例。我在 处理线程时遇到问题。测试用例成功运行后,不会等待子线程完成。例如如果一个测试用例在服务器中调用 一些服务。 testcase将成功发送请求到 服务器,但它不会等待响应。因为测试用例会在 的不同线程中启动此请求。目前我使用 下面的代码,Android Junit测试用例中的线程处理问题

currentThread = Thread.currentThread(); 
    synchronized (Thread.currentThread()) { 
      try { 
           Thread.currentThread().wait(); 
        } catch (InterruptedException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
        } 

得到响应我使用下面的代码再次启动 当前线程之后。

currentThread.interrupt(); 

我认为这不是好的做法。必须有一些其他的技术来正确处理这个问题。如果有人知道解决方案,请尽快告诉我 。

感谢,

Vashishta 
+0

如果你想等待线程完成,为什么不使用Thread.join()? – fadden 2010-11-12 22:35:22

回答

0

在你的代码中​​块不会阻塞(等待另一个线程),因为你Thread.currentThread()这是在不同的线程不同的对象同步。

你已经对所有线程共有的对象进行同步:通常是包含共享数据的对象。然后你操作这个数据的块代码。

+1

嗨 我仍然无法找到任何解决方案。请简要解释.. :) 谢谢... – Vashishta 2010-11-19 11:27:56