我有主線程(MainThread),我在其上創建新的Thred(讓我們稱它爲NewThread)。在NewThread中,我調用了一個想要爲MainThread調用某個方法的方法。C#線程問題
問題是,當我從MainThread調用NewThread.Join()時,NewThread的Invoke方法無法完成/終止(並且整個應用程序永遠凍結...),因爲MainThread正在等待NewThread終止...
......就像惡性循環......任何想法如何解決它?我需要有可能從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上調用你的方法?是某種Control.Invoke或類似的? – michalczerwinski