0

SqlConnection.Open()을 실행하는 동안 확장/확장되는 후행 .....을 갖고 싶습니다.SqlConnection.Open()이 실행되는 동안 쓰기 호스트 출력 실행

이 작업을 수행하는 방법을 알 수 없으며 연결이 이루어질 때까지 SqlConnection.Open() 명령을 실행하면 출력이 중지됩니다.

while 루프를 시도했지만 실제 연결이 설정되거나 실패 할 때까지는 while 내용이 아무것도 수행하지 않습니다. 10-15 초가 걸릴 수 있습니다.

$waiting = ".", ".", ".", ".", "."; 
Try 
{ 
    #write-host -ForegroundColor GREEN "Connecting to SQL Server: $svr" 
    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
    $SqlConnection.ConnectionString = "Server = $svr ;Database = $db; User ID = $uid ;Password = $pwd;" 

    while (!$SqlConnection.State -eq 'Open') 
    { 
     write-host -ForegroundColor GREEN "Connecting to SQL Server: $svr" -NoNewline 
     ForEach ($p in $waiting) { 

      Write-Host -ForegroundColor Cyan "`r$p" -NoNewLine 
      Start-Sleep -Milliseconds 300 
     } 

     $SqlConnection.Open() 
    } 

    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
    $SqlCmd.Connection = $Global:SqlConnection 
    $SqlCmd.CommandText = $UsrSqlQuery 
} 
+0

지금까지 가지고있는 관련 코드를 표시 할 수 있습니까? – user2366842

+0

이것이 현재 im에서 while while 및 while while 반복을 몇 번 반복했습니다. – catalyph

답변

2

단일 스레드 스크립트가 있습니다. .Open 메서드를 호출하면 반환 할 때까지 아무 일도 일어나지 않습니다. 멀티 스레딩 만이 원하는 것을 얻을 수있는 유일한 방법이라고 생각합니다. PS의 멀티 스레딩 예는 다음과 같습니다. multithreading