2014-09-14 6 views
0

수행 할 메소드를 기다리는 메인 모듈을 만들려고합니다. Watin에 대해 비동기식/대기식 메서드를 만드는 방법은 무엇입니까?

다음과 같은 코드를 살펴 :

Public static void CheckAvailItem(IE browser) 
    { 

     for (int i = 0; i < 6; i++) 
     {    
      browser.CheckBox(Find.ById("PickUpItem" + i)).Checked = true;       
     } 
    } 

방법은 단순히 6 개 체크 박스를 확인합니다. WatIn의 문제는 각 확인란의 "확인"사이에 약 1 초의 지연이 있으며 문제는 주 프로그램이 계속 실행되고 6 개의 상자가 검사 될 때까지 기다리지 않는다는 것입니다.

비동기 프로그래밍을 사용하여이 작업을 수행하려고했지만이를 만드는 데 어려움을 겪고 있습니다.

"비동기"키워드는 "정적"과 "무효"사이에 들어 있지만 "대기"키워드를 넣을 위치는 모르겠다. 나는 그것을 "브라우저"뒤에 두려고했지만 그곳에 있으면 안된다는 것을 알고있다.

모든 의견을 환영합니다.

+1

왜이 특정 메서드를 비동기로 설정 하시겠습니까? 당신은 그것으로 무엇을 얻을 것으로 예상합니까? 'async-await'에 대한 기본 사항을 배우려면 내 [async-await general curation] (http://curah.microsoft.com/45553/asyncawait-general)을보십시오. –

+0

음,이 방법은 완료하는 데 6 초가 걸립니다. 나는 Watnt가 체크 박스를 체크하는데 너무 오래 걸리는 것을 모른다. 그 동안 나머지 코드는 계속 실행되고 Method가 완료 될 때까지 기다리지 않습니다. 나는 Await Task.Delay (6000)와 같은 것을 할 수 있다는 것을 알고 있지만 시간은 다양하다. 나는 이것을 달성하는 더 좋은 방법 인 것처럼 느낀다. – user3397856

+0

'Task.Run'을 사용해 보셨습니까? –

답변

0

좋습니다. 알아낼 수 있습니다. 나는 Thread.Sleep을 포함하고 그것이 효과가있다.