2012-11-24 30 views
15

Uso Esempio 1: creazione, l'avvio e interagendo tra i thread su questa MSDN tutorial più specificatamente linea 3 alla linea 7 nella Main()non è possibile accedere con un riferimento di istanza; qualificare con un nome di tipo invece

Ho il seguente codice con il seguente errore:

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() 
{ 
} 
+1

Quindi hai seguito il consiglio dato nell'errore del compilatore? Perché vuoi un'istanza di 'threadTest' comunque? –

+0

Esempio 1: creazione, avvio e interazione tra thread http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx#vcwlkthreadingtutorialexample1creazione più specifica della riga 3 alla riga 7 nel menu principale() –

+0

Diritto. Ora osservate il vostro metodo 'testThread' e osservate il metodo' Alpha.Beta' dell'esempio, osservate la differenza e guardate di nuovo il messaggio di errore. –

risposta

27

tuo testThread è un metodo statico, quindi è disponibile tramite nome del tipo. Pertanto, anziché utilizzare l'unità threadTest, utilizzare il tipo ThreadTest.

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

o cambia il metodo di dichiarazione (rimuovere static):

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

Inoltre si dovrebbe passare metodo per delegare ThreadTest.testThread (parentesi rimossi) al posto del risultato del metodo di invocazione ThreadTest.testThread() di passaggio.

Problemi correlati