读书人

高手再帮小弟我看看吧多线程有关问题

发布时间: 2012-01-01 23:10:55 作者: rapoo

高手再帮我看看吧,多线程问题
光说好像不太清楚,请高手帮我看一下代码,如果真的时Join的问题,我得马上想办法去更改先前的程序了。
//用多线程进行通讯测试
private void Test()
{
//这里省略无关的代码

//用多线程进行通讯测试
for (int index = 0; index < m_SeiPcbas.Count; index++)
{
m_SeiPcbas[index].SetTestCondition(cmbCommand.Text, m_RepeatTimes, m_RepeatInterval,
new CallBackDelegate(CallBackRecord));//这里使用了回调委托来回调数据
Thread threadTest = new Thread(new ThreadStart(m_SeiPcbas[index].TestReadCommand));
m_TestThreads.Add(threadTest);
}
}
private void CallBackRecord(SeiPcbaTestRecord record)
{
rtfCurrentDetails.Invoke(
new EventHandler(
delegate
{
m_NumFinished++;

//这里省略无关代码

if (m_NumFinished == m_NumToTest)//测试都完成了
{

tmrTest.Interval = m_TestInterval;
tmrTest.Enabled = true;
tmrTest.Start();问题在这里:测试完了启动时钟,在时钟中又调用了上面的Test()方法,当时我认为既然数据已经得到了回调数据,那么4个测试线程已经执行结束,所有没有在其他地方使用Join方法等待线程执行结束,不知道是不是就是这个原因导致第一次死机的,请高手给个答案 }
}
));
}

[解决办法]
帮顶!Too

[解决办法]
2个贴?

[解决办法]
多线程回调对我来说还是有点复杂的,刚学习c#不久,帮你顶了
[解决办法]
没有结束吧? 在其他地方开始,test函数里边唤醒,完了之后就阻塞,看怎么样?
[解决办法]
帮你顶顶吧

[解决办法]
你是使用线程池?
线程池中可以添加相同的线程吗?感觉你代码有问题检查一下吧,代码不全不好说。

读书人网 >C#

热点推荐