日期:2014-05-20  浏览次数:20761 次

启动线程编译报错.请问是什么原因
在VS2005里的一个对话框程序里
我想启动一个线程
我把线程要做的东西放在了一个新生成的类ThTest,是一个单独的文件ThTest.cs
class   ThTest
        {
                public   ThTest()
                {
                }
                public   void   Run()
                {
                        while   (true)
                        {
                                //...这里是线程执行的内容
                                Thread.Sleep(2000);
                        }
                }
        }
然后我在主FROM里启动线程,但是编译报错

ThTest   myThread   =   new   ThTest();
myThread   =   new   Thread(   myThread.Run   );  
//为什么这里编译的时候报
Cannot   implicitly   convert   type   'System.Threading.Thread '   to   'Program.ThTest '
myThread.IsBackground   =   true;
myThread.Start();
请问该怎么做?

------解决方案--------------------
private Thread mThread;
ThTest mThTest = new mThTest();
mThread = new Thread(new ThreadStart(mThTest.Run))
mThread.start();
------解决方案--------------------
myThread = new Thread( new ThreadStart(myThread.Run ));
------解决方案--------------------
TO:ThTest myThread = new ThTest();
myThread = new Thread( myThread.Run );

楼主把ThTest和Thread弄混了吧...

你这里的myThread明明是ThTest类型的,又怎么能实例化成Thread类型的呢?