我正在尝试从线程调用一个称为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)

10-06 00:43