당신은이 목적을 위해 ManulResetEvent을 사용할 수 있습니다 : 당신은 당신의 입력 폼을 실행하고 할 때 A.dowork 방법에서 잡을 수 있도록 그 형태는 이벤트를 설정합니다. 행동 입력하면 무한 루프를 실행하는 동안,이 시간에 당신이 응용 프로그램을 담당하기 위해 이벤트 상태 및 프로세스 응용 프로그램 이벤트를 확인하십시오 또한
public class A //this is just a class file
{
private ManualResetEvent _event;
public void dowork()
{
//work 1
_event = new ManualResetEvent(false);
//INPUT = here in this ...
Worker worker = new Worker();
worker.DoInput(_event);
while(true)
{
if(_event.WaitOne())
break;
Application.DoEvents();
}
//work 2 using INPUT
}
}
class Worker
{
private ManualResetEvent _event;
public void DoInput(ManualResetEvent @event)
{
_event = @event;
// Show input form here.
// When it done, you call: _event.Set();
}
}
, 나는 비동기 라이브러리를 사용 (당신이 할 수있는 경우) (그것이 제안 독립 실행 형 설정으로 사용 가능). 거기 당신은 훨씬 더 간단한 방법으로 그것을 구현할 수 있습니다
public class A //this is just a class file
{
public async void dowork()
{
//work 1
//INPUT = here in this ...
Worker worker = new Worker();
wait worker.DoInput();
//work 2 using INPUT
}
}
class Worker
{
public async void DoInput()
{
InputForm form = new InputForm();
wait form.ShowInput();
}
}
public class B
{
async void myfn()
{
A objA = new A();
wait objA.dowork();
}
}
당신이 코드의 다른 부분은 어떤 UI 잠금 및 이벤트없이 실행다면 당신은 그냥 기다려 볼 수있다. 필요한 경우 여기에서 async/wait가 작동하는 방식에 대해 자세히 설명 할 수 있습니다.
Windows Form을 말할 때 어떤 의미입니까? 당신은 asp.net에 의해 질문 tagging 그래서 나는 이것이 웹 페이지라고 생각하고 일부 사용자 입력을 잡아 줄까? – sll