我的代码如下
public void incomingMessageThread() throws FileNotFoundException, IOException
{
new Thread()
{
BuildData a = new BuildData();
for(int i = 0; i<100; i++)
{
a.parseDataFile("_"+i+"/outgoingMessages");
}
}.start();
}
我被告知这是非法的开始。如果我在线程外部运行代码,它可以正常工作。任何想法都错了吗?
答案 0 :(得分:11)
您正在使用类中的语句和方法之外的语句。
来自Thread.run
的{{3}}:“线程的子类应覆盖此方法。”
public void incomingMessageThread() throws FileNotFoundException, IOException
{
new Thread()
{
public void run()
{
BuildData a = new BuildData();
for(int i = 0; i<100; i++)
{
a.parseDataFile("_"+i+"/outgoingMessages");
}
}
}.start();
}
答案 1 :(得分:4)
你应该写这样的东西(实现void run())
public void incomingMessageThread() throws FileNotFoundException, IOException
{
Thread t= new Thread()
{
public void run()
{
BuildData a = new BuildData();
for(int i = 0; i<100; i++)
{
a.parseDataFile("_"+i+"/outgoingMessages");
}
}
};
t.start();
}
答案 2 :(得分:0)
线程是一个类而不是一个函数(这是你上面的语法类似的壁橱)
你的代码应该是
class MyThread : public Thread {
public void run() {
// code
}
}
Thread t = new MyThread();
t.run()