2016-10-13 5 views
-2

2 가지 기능간에 지연을 어떻게 추가합니까? 하나의 함수가 실행되기를 기다리고 다른 함수는 실행을 지연 시키길 원합니다. java에서 함수 호출간에 지연을 추가하는 방법은 무엇입니까?

AI CPU는 I가 출력 지연하고자 선택 대 코드 아래에 예를 들어 .... TimeUnit.SECONDS() 전체 프로세스되지 각 함수 호출을 지연

..

그래서 어떻게 각 후에 지연을 추가 할 다음 코드에서 CPU와 AI의 함수 호출 :

public void actionPerformed(ActionEvent e) { 
      option = 3; 
      ai.setBackground(Color.WHITE); 
      int q = (int) (Math.random() * 2); 
      //System.out.println(" I have been called " + q); 
      if (q == 1) { 
        System.out.println(" I am inside " + q); 
        text1.setText(" AI starts "); 
        AI(1); 
        CPU(0); 
        AI(1); 
        CPU(0); 
        AI(1); 
        CPU(0); 
        AI(1); 
        CPU(0); 
       } else { 
        //  System.out.println(" I have been inside " + q); 
        text1.setText(" CPU starts "); 
        CPU(1); 
        AI(0); 
        CPU(1); 
        AI(0); 
        CPU(1); 
        AI(0); 
        CPU(1); 
        AI(0); 
       } 

     } 

    }); 

편집 :이 실제로 출력이 빠른 것 있도록 컴퓨터 .... 인공 지능에 대한 재생하는 콩알 만 발가락 게임이다 ... 각 단계를 호출하고 거기에있는 지연을 호출하여 각 이동을 볼 수있게합니다.

+2

try ['java.lang.Thread.sleep (long millis)']] (https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#sleep (long)). – DimaSan

+0

도 작동하지 않음 – lirus

+2

[Java에서 지연하는 방법] 가능한 중복? (http://stackoverflow.com/questions/24104313/how-to-delay-in-java) – MordechayS

답변

0

앞서 언급했듯이 Thread.sleep은가는 길입니다. 다음과 같은 간단한 방법을 만들 수 있습니다.

public void sleep(long millis){ 
    try { 
     Thread.sleep(millis); 
    } catch(InterruptedException ex) { 
     Thread.currentThread().interrupt(); 
    } 
} 

지연을 원할 때마다 전화하십시오. 각 단계 사이에 지연하려는 경우 각 단계 사이에 전화를해야 : 중요

CPU(1); 
sleep(300); 
AI(0); 
sleep(300); 
/*And so on*/ 

을이 당신의 GUI는 스레드가 자고하지 응답 반면 단일 스레드 응용 프로그램 인 경우 크리스토퍼 슈나이더가 언급 한 바와 같이.

+0

GUI를 동기화 할 수있는 방법은 무엇입니까? – lirus

관련 문제