在A函数中创建了一个线程t去执行B方法,现在需要在B函数执行完毕后将线程中断。
其实是个很简单的问题,但就卡在如何判断B已经全部执行完毕。
后来想到了一个很狗的办法,就是手动判断,当B运行完后手动添加Thread.SpinWait(Sleep也行)进程休眠。在A函数中判断线程状态,判断到休眠后将进程中断 。
代码如下:
Thread t = new Thread(new ParameterizedThreadStart(A));
t.Start();
if ((t.ThreadState & ThreadState.WaitSleepJoin) == 0)
{
t.Abort();
}
private static void B(object obj)
{
int i = 1000;
while (i>=0)
{
i--;
}
Thread.SpinWait(1);
}
欢迎大家讨论,萌新第一次发帖。于2019/11/6