This code snippet shows how to wait for several tasks to complete: https://www.b4x.com/android/forum/threads/b4x-wait-for-multiple-tasks-to-complete.150329/#content
Here, we are waiting for the first event that is raised. This can be useful in cases where there are two different events, one for success and one for failure.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
You can replace the Sleep calls in the "test" subs with Wait Fors. For example:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			Here, we are waiting for the first event that is raised. This can be useful in cases where there are two different events, one for success and one for failure.
			
				B4X:
			
		
		
		     Dim status(1) As String
    Test1(status)
    Test2(status)
    Do While status(0) = ""
        Sleep(50)
    Loop
    Log("task completed: " & status(0))
End Sub
Private Sub Test1 (Status() As String)
    Sleep(Rnd(1, 1000))
    Status(0) = "Test1 completed"
End Sub
Private Sub Test2 (Status() As String)
    Sleep(Rnd(1, 1000))
    Status(0) = "Test2 completed"
End SubYou can replace the Sleep calls in the "test" subs with Wait Fors. For example:
			
				B4X:
			
		
		
		 BannerAd.LoadAd
 WaitForSuccess (status)
  WaitForFailure(status)
    Do While status(0) = ""
        Sleep(50)
    Loop
    Log("task completed: " & status(0))
Private Sub WaitForSuccess (Status() As String)
   Wait For BannerAd_ReceiveAd
    Status(0) = "success"
End Sub
Private Sub WaitForFailure(Status() As String)
     Wait For BannerAd_FailedToReceiveAd (ErrorCode As String)
    Status(0) = "fail: " & ErrorCode
End Sub 
				 
 
		 
 
		 
 
		