我正在尝试从线程调用一个称为UpdateResults()
的非静态方法。这是我的代码:
class Live
{
Thread scheduler = new Thread(UpdateResults);
public Live()
{
scheduler.Start();
}
public void UpdateResults()
{
//do some stuff
}
}
但是我得到这个错误:
我怎样才能解决这个问题?
最佳答案
这与Thread
无关。有关此原因的详细信息,请参见this问题。
要解决您的问题,请按以下步骤更改您的类(class):
class Live
{
Thread scheduler;
public Live()
{
scheduler = new Thread(UpdateResults);
scheduler.Start();
}
public void UpdateResults()
{
//do some stuff
}
}
正如乔恩·斯基特(Jon Skeet)在上述问题中提到的那样,来自C#4规范的10.5.5.2节:
当您编写
new Thread(UpdateResults)
时,您实际上是在编写new Thread(this.UpdateResults)
。