日期:2014-05-18  浏览次数:20787 次

有关多线程的一个问题
有这样一段代码
public   class   Test
{
private   Thread   t;

public   Test()
{
t   =   new   Thread(new   ThreadStart(ThreadJob));
}

public   Run()
{
t.Start();
}

private   void   ThreadJob()
{
//   这里做一些操作
process();
//   另外的操作
}

private   void   process()
{
//   这里执行一些操作
}
}

执行Run,这个类启动了一个线程,这个线程去执行了ThreadJob()这个方法,这个方法里面用到了process()这个方法。

问题:当执行process()这个方法的时候,是主线程来操作,还是子线程在操作?

------解决方案--------------------
你可以在process()方法里面去添加一句代码看看到底是哪个线程在起作用。
Thread.CurrentThread; //获取当前正在运行的线程
然后将他显示出来看下就好了
------解决方案--------------------
子线程操作
t = new Thread(new ThreadStart(ThreadJob));
t.Start();

明显是在新开子线程中做的
------解决方案--------------------
线程t在操作
------解决方案--------------------
我不知道是自己没明白你的意思还是你就是那个意思,你不是把你自己的方法放到你自己新开的线程里了吗?怎么还问在是不是主线程呢