C# 线程开始引用错误
在遵循一些创建线程的基本代码之后,我遇到了一个问题 我在threadstart上使用了一个回调方法,但是我得到了一个错误 非静态字段、方法或属性“Program.ServerUDP”需要对象引用 在这上面,(服务器udp) 两者都包含在同一类中,程序C# 线程开始引用错误,c#,multithreading,asynchronous,C#,Multithreading,Asynchronous,在遵循一些创建线程的基本代码之后,我遇到了一个问题 我在threadstart上使用了一个回调方法,但是我得到了一个错误 非静态字段、方法或属性“Program.ServerUDP”需要对象引用 在这上面,(服务器udp) 两者都包含在同一类中,程序 我是不是漏掉了什么明显的东西?我查找的所有代码基本上都是这样运行的,我甚至尝试将线程的声明从main中移出并作为类的属性,但这是同一个问题。ServerUDP应该被设置为静态方法只有指定/使用服务器类的实例,才能访问该方法。因此,如果它不使用任何对
我是不是漏掉了什么明显的东西?我查找的所有代码基本上都是这样运行的,我甚至尝试将线程的声明从main中移出并作为类的属性,但这是同一个问题。ServerUDP应该被设置为静态方法只有指定/使用
服务器
类的实例,才能访问该方法。因此,如果它不使用任何对象特定的东西,您可以将该方法设置为静态。指定了Server.UDP
,这表示只使用newserver().UDP()代码>
不管怎样,当你修复它时,你也必须这样写:
new ThreadStart(() => ServerUDP());
你只能在静态方法中访问静态方法这是有效的,奇怪的是,没有任何示例或教程说明这是一个需要的静态方法,我甚至在一本书的教程中工作。如果你仔细想想,这是非常直接的。静态方法对对象实例一无所知。因为它没有引用任何。我尝试使用this.ServerUDP,但它不起作用。我不知道程序运行时会发生什么,但我希望内部带有main的类会自动创建一个实例,不是这样吗?
new ThreadStart(() => ServerUDP());