비동기적으로 호출하려는 VI의 참조를 열 때, 이후 VI의 결과를 수집할 것인지 결정해야 합니다. 이 토픽은 비동기화 호출 및 수집 VI 호출을 시작하는 방법과 이후 결과 수집 방법에 대해 설명합니다. 다른 프로그래밍 언어는 이러한 사용 모델을 fork-and-join으로 설명합니다. 또는 결과 수집 없이 VI를 호출할 수 있습니다.

사용 객체

다음의 블록다이어그램 객체를 사용하여 다이나믹하게 비동기화 VI 호출을 시작한 후 나중에 해당 VI의 출력을 수집합니다:

다음 단계

다음의 블록다이어그램을 생성하여 비동기적으로 VI를 호출한 후 나중에 결과를 수집합니다.



위의 블록다이어그램에 대한 중요한 상세 정보가 다음 리스트에 설명되어 있습니다.

노트 LabVIEW 도움말은 [VI 참조 열기] 함수의 모든 옵션 플래그를 16진수 형으로 디스플레이합니다. 그러므로, 항상 16진수로 숫자형 상수 입력의 디스플레이 포맷을 변경하여 올바른 값을 전달하도록 합니다.

유의점 및 권장사항

  • VI 강제 종료하기― 다음과 같이 사용하던 VI를 강제 종료하는 경우 얻게 될 결과에 주의하십시오:
    • 호출 및 수집 VI 참조가 열려 있는 VI를 강제 종료하는 경우, LabVIEW는 자동으로 참조를 닫고 VI의 모든 실행 중인 인스턴스를 강제 종료합니다.
    • 호출 및 수집 VI 참조의 특정 인스턴스를 강제 종료하는 경우, 정확히 하나의 비동기화 호출 기다림 노드가 호출된 VI의 강제 종료를 알리는 에러를 반환합니다. 같은 VI 참조의 호출을 기다리는 모든 다른 비동기화 호출 기다림 노드는 계속해서 기다립니다.
    • 호출 및 수집 VI 참조에 대해 강제 종료 메소드를 호출하는 경우, LabVIEW는 현재 실행 중인 모든 VI의 인스턴스를 강제 종료합니다. 상응하는 수의 비동기화 호출 기다림 노드가 에러를 반환합니다.
  • 호출 및 수집 VI 참조가 열려 있는 VI가 실행을 마치면, LabVIEW는 자동으로 참조를 닫고 VI의 모든 실행 중인 인스턴스를 강제 종료합니다.
  • 같은 VI 참조에 대해 여러 비동기화 호출을 시작할 경우, 어떤 VI 호출이 특정 비동기화 호출 기다림 노드에 출력을 반환하는지 직접 확인할 수 없습니다. 어떤 VI 인스턴스가 반환되었는지 알 필요가 있을 경우, VI 호출에 식별자를 지정합니다.

변동: 고유한 VI 참조에 대한 여러 호출로부터 출력 수집하기

다음 블록다이어그램은 여러 VI를 비동기적으로 호출한 후 그 출력을 수집하는 템플릿을 제공합니다. 각 비동기화 호출은 고유한 VI 참조와 연관되기 때문에, 각 비동기화 호출 기다림 노드는 특정 VI가 끝날 때까지 기다립니다. 서브패널의 내용물이 개별 subVI의 프런트패널인 사용자 인터페이스를 생성할 때 이 템플릿이 특별히 유용합니다.



예제

VI를 비동기적으로 호출하고 나중에 그 결과를 수집하는 예제는 labview\examples\Application Control\VI Server\Asynchronous Call By Reference 디렉토리에 있는 Asynchronous Call and Collect VI를 참조하십시오.