새 스레드를 만들 수있는 주 스레드 (MainThread)가 있습니다 (NewThread라고합니다). NewThread에서 MainThread에 대한 메소드를 호출 할 메소드를 호출합니다.C# 스레딩 문제
문제는 MainThread에서 NewThread.Join()을 호출하면 MainThread가 종료 될 때까지 기다리기 때문에 NewThread에서 Invoke 메서드를 수행/종료 (그리고 전체 응용 프로그램을 영구적으로 ...) 할 수 있다는 것입니다.
sth 악순환처럼 ... 어떤 아이디어를 해결하는 방법? MainThread에서 NewThread를 종료/중단하고 NewThread를 더 이상 존재하지 않게 할 수있는 가능성이 필요합니다.
내가 충분히 구체적이기를 바란다.
메인 스레드 :
void method()
{
if(currentthread!=null)
{
currentthread.Join();
currentthread=null;
}
sth...
Backgroundworker worker = new Backgroundworker();
worker.DoWork += delegate (...)
{
currentthread=Thread.CurrentThread;
Func();
}
....
}
NewThread :
delegate void FuncDel();
void Func()
{
if(MainThread.InvokeRequired)
{
FuncDel funcD = new FuncDel();
MainThread.InvokeRequired(funcD);
return;
}
....
}
코드를 확인해야합니다. – Woot4Moo
코드를 게시 하시겠습니까? – ChrisNel52
MainThread에서 메서드를 호출하는 데 사용한 기술은 무엇입니까? 어떤 종류의 통제 였나요? – michalczerwinski