2014-03-13 5 views
0

요청시 실행되고 CodeDomProvider를 사용하여 컴파일되는 스크립트가 있습니다. 다음은 하나의 예입니다.응답이 제공 될 때까지 실행 중지

Now. SendYesNo는 사용자가 입력 한 상자를 표시합니다. 응답이 설정 될 때까지 해당 줄에서 스크립트를 중단하고 싶습니다. 그런 다음 응답을 받아 변수에 적용하고 실행을 계속하십시오. 지금까지 나는 await/async를 사용했지만, 나는이 생각을 싫어한다. 다른 것으로 가능합니까?

+1

인가 :

이 경우
using (var form = new SomeForm()) { if (form.ShowDialog() == DialogResult.OK) { var yesNo = form.yesNo; if (yes) // Do something else // Do something else } } 

그냥 예/당신이 참조 할 수 없음 메시지 박스입니다 :

public class SomeForm : Form { public bool yesNo { get { return yesNo; } set { //set value according to your logic } } } 

하고 주요 양식에

이 좋아 호출 이 WinForms, WPF, WebBased, 콘솔 응용 프로그램? –

+0

@ErikPhilips WinForms. – user3265040

+0

SendYesNo의 기능은 무엇입니까? 그냥 ShowDialog를 사용할 수 없습니까? – aquinas

답변

1

매개 변수를 반환하는 모달 창을 사용할 수 있습니다. 필요한 입력이 더 복잡한 경우 표준 MessageBox 나 사용자 정의 된 Form을 사용할 수 있습니다.

뭔가 같은 : How do I create a message box with "Yes", "No" choices and a DialogResult?

+0

당신은 내 질문에 대해 오해했습니다. 사용자로부터의 입력은 메시지 상자조차도 아니며, 입력은 중요하지 않습니다. 나는 응답이 주어질 때까지 xeceution을 멈추는 방법을 알고 싶다. WinForms인지 아닌지는 중요하지 않습니다. WinForms를 사용하지 않기 때문입니다. – user3265040

+0

입력이 중요하지 않은 경우 왜 기다려야하나요? – Brad

+0

기본적으로 두 가지 시나리오가 있습니다. 1) 입력을 기다려야하며 계산을 계속하고 싶지 않습니다. 귀하의 방법은 동기식이며, 그것이 돌아올 때까지지나 가지 않습니다. 2) 입력을 기다리지 않고 얻은 결과를 처리하고 싶습니다. 이 경우 입력을 사용할 수있게되면 스레드와 콜백/이벤트를 사용할 수 있습니다. 귀하의 사례는 어느 것입니까? –

관련 문제