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()
{
}
Solution. To fix this error, ensure that you access the static variable directly using the class name instead of the instance name as the qualifier.
Instance = Object. Reference = A variable that holds bit patern which points to the Object in the Memory (Heap). Example: public class Car {
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()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With