问题简单示例代码如下:void work()
{
Thread Snd_Thread=new Thread(new ThreadStart(SndThread));
}
void SndThread()
{
//初始化信息
while(true)
{
//N多工作
//收到停止消息
stop();
}
}
void stop()
{
//停止工作线程
//执行停止操作
//按条件再次运行线程
SndThread();
}
请问这样,会不会再次初始化信息后,再运行线程??
用ThreadPool运行的线程,与不用它运行的线程有什么区别(MSDN上的内容就不要来了,我看过了)
{
Thread Snd_Thread=new Thread(new ThreadStart(SndThread));
}
void SndThread()
{
//初始化信息
while(true)
{
//N多工作
//收到停止消息
stop();
}
}
void stop()
{
//停止工作线程
//执行停止操作
//按条件再次运行线程
SndThread();
}
请问这样,会不会再次初始化信息后,再运行线程??
用ThreadPool运行的线程,与不用它运行的线程有什么区别(MSDN上的内容就不要来了,我看过了)
ThreadPool只是個線程池了,就是把線程都裝在裡面
void SndThread()
{
//初始化信息
while(true)
{
//N多工作
//收到停止消息
stop(); // 在这里你调用了stop
}
}
void stop()
{
//停止工作线程
//执行停止操作
//按条件再次运行线程
SndThread(); // 在这里你没有return,而是直接调用了SndThread,等于这两个函数在没有推出的情况下循环调用,可能会发生stack overflow。(可能这是你的本意,我只是提醒一下 :-p)
}
MTA Thread 将创建并进入一个多线程单元。
STA Thread 将创建并进入一个单线程单元。
Unknown 尚未设置 ApartmentState 属性
这些会对线程的运行产生什么样的影响???