我在创建线程后遵循一些基本代码后出现问题。ThreadStart参考错误
我有我使用用于在的ThreadStart回调的方法但我发现了错误,
一个对象引用是所必需的非静态字段,方法或属性“ Program.ServerUDP'
就此,(ServerUDP)。
3210两者都包含在同一个类中,计划。
我在这里错过了一些明显的东西吗?我查过的所有代码基本上都是这样运行的,我甚至试图将Thread的声明从主类中移出来,并作为类的一个属性,但它是同样的问题。
我在创建线程后遵循一些基本代码后出现问题。ThreadStart参考错误
我有我使用用于在的ThreadStart回调的方法但我发现了错误,
一个对象引用是所必需的非静态字段,方法或属性“ Program.ServerUDP'
就此,(ServerUDP)。
3210两者都包含在同一个类中,计划。
我在这里错过了一些明显的东西吗?我查过的所有代码基本上都是这样运行的,我甚至试图将Thread的声明从主类中移出来,并作为类的一个属性,但它是同样的问题。
ServerUDP应为静态方法
这有效,奇怪的是,没有任何示例或教程指出它是一个需要的静态,我甚至从书中的教程开始工作。 –
好吧,如果你仔细想一想,那很简单。静态方法不知道任何有关对象实例的信息。因为它没有提及任何。 – kevintjuh93
我试过使用this.ServerUDP,但没有奏效。 我不知道当程序运行时会发生什么,但我预计与主内部的类会自动创建一个实例,这是不是这种情况? –
你只能访问如果指定/使用Server
类的实例方法。所以如果它不使用任何东西object
特定的,你可以使该方法静态。这是很奇怪的,你有Server.UDP
规定,表示在刚使用new Server().UDP();
反正你也必须把它写这样当你固定它:
new ThreadStart(() => ServerUDP());
谢谢,这也工作。 –
你只能访问静态方法中的静态方法 –