Jordan Trainor Jordan Trainor - 3 months ago 14
C# Question

cannot be accessed with an instance reference; qualify it with a type name instead

Using Example 1: Creating, starting, and interacting between threads on this MSDN tutorial more specificaly line 3 to line 7 in the

Main()


I have the following code with the following error:


cannot be accessed with an instance reference; qualify it with a type
name instead.


Program.cs

public static ThreadTest threadTest = new ThreadTest();
private static Thread testingThread = new Thread(new ThreadStart(threadTest.testThread()));
static void Main(string[] args)
{

}


ThreadTest.cs

public static void testThread()
{
}

Answer

Your testThread is a static method, so it's available via type name. So, instead of using isntance threadTest, use ThreadTest type.

// public static void testThread()
testingThread = new Thread(new ThreadStart(ThreadTest.testThread));

Or change method declaration (remove static):

// public void testThread()
testingThread = new Thread(new ThreadStart(threadTest.testThread));

Also you should pass method to delegate ThreadTest.testThread (parentheses removed) instead of passing result of method invokation ThreadTest.testThread().

Comments