내가 가지고있는 다음과 같은 기능과 나는 System.Threading.Thread
내에서 사용하고 싶습니다 : 나는 시도했다C 번호 - 스레드 내에서 "밖으로"매개 변수와 함수를 사용하여
private void tempFunction(int num, out string fullname, out string info)
{
// Doing a very long scenario.
// When finished, send results out!
fullname = result1;
info = result2;
}
이를 사용하는 (button_Click) 이벤트 핸들러에 코드를 다음
private void submit_Button_Click(object sender, RoutedEventArgs e)
{
string Fullname = string.Empty, Info = string.Empty;
int index = 132;
Thread thread = new Thread(() => tempFunction(index, out Fullname, out Info));
thread.Start();
thread.Join();
// I always use "MessageBox" to check if what I want to do was done successfully
MessageBox.Show(Fullname + "\n" + Info);
}
당신은 내가 스레드가 스레드 프로세스의 결과를 얻을 완료 전까지 기다릴 필요가 있기 때문에 내가 thread.Join();
를 사용하는 것을 볼 수 있습니다.
위의 코드는 작동하지 않는 것 같습니다. 단지 멈추고 이유를 모르겠습니다!
나는 분명히 뭔가 잘못하고 있습니다. 내가 원하는 것을 어떻게 할 수 있는지 말해 줄 수 있습니까?
쉬운 문제를 먼저 제거하십시오. 스레드없이 실행 해 보셨습니까? 끝나니? –
또 다른 문제는 다음과 같습니다. 스레드를 시작하고 바로 스레드에 참여하면 방금 함수를 호출했을 수 있습니다. 아무것도 여기에서 비동기 적으로 수행되지 않습니다. –
@ ZanLynx 스레드없이 완벽하게 작동하지만 실제로 스레드와 함께 이러한 종류의 함수를 사용하는 방법을 모릅니다.그 함수에 전혀 문제가 없습니다. 주요한 문제는 스레드입니다. –