Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Numero di processori logici e fisici
Forum - C# / VB.NET - [VB.NET] Numero di processori logici e fisici - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 14:52
Giovedì, 05/08/2010
Hai aggiunto l'assembly System.Management come reference del progetto?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:02
Venerdì, 06/08/2010
Testo quotato

Postato originariamente da netarrow:
Si ok, ma ManagementObject espone un indexer, ereditandolo da ManagementBaseObject.



Beh, l'eccezione dice il contrario...

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 16:06
Venerdì, 06/08/2010
Penso di aver capito cosa è successo:

Lui ha fatto l'import di System.Management, ma non ha aggiunto la reference all'assembly System.Management.dll, l'intero namespace e quindi anche la classe ManagementObject non venivano trovati, lui ha detto a visual studio di creare la classe che mancava quindi è stata creata una nuova classe ManagementObject, infatti nel suo errore viene indicata interna al suo namespace con WindowsApplication1.ManagementObject che ovviamente non contiene ne l'indexer ne niente altro.

Questo spiegherebbe come mai non trova un indexer che nella classe originale c'è e tutti gli altri errori che gli vengono dati fin dall'importazione del namespace.

PM Quote
Avatar
Dyango (Normal User)
Pro


Messaggi: 83
Iscritto: 02/01/2009

Segnala al moderatore
Postato alle 16:08
Venerdì, 06/08/2010
ecco finalmente ho risolto:

Codice sorgente - presumibilmente VB.NET

  1. Public Shared Function GetCpuCores() As Integer
  2.         Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_Processor")
  3.         Try
  4.             For Each queryObj As ManagementObject In searcher.Get
  5.                 Return Convert.ToInt32(queryObj.Item("NumberOfCores"))
  6.             Next
  7.         Catch e As ManagementException
  8.             Return -1
  9.         End Try
  10.         Return -1
  11.     End Function



gli errori che ho corretto sono:

1 - l aggiunta dei referimenti al namespace system.management
2 - aggiunto la proprietà item a queryObj
3 - ho tolto "root\\CIMV2" durante la dichiarazione di searcher

grazie ragazzi per l aiuto che mi avete dato;)

Ultima modifica effettuata da Dyango il 06/08/2010 alle 16:10
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:16
Sabato, 07/08/2010
Testo quotato

Postato originariamente da netarrow:
lui ha detto a visual studio di creare la classe che mancava quindi è stata creata una nuova classe ManagementObject



Come? Se le classi non esistono, VS non le crea da solo, a meno che non mi sia perso una funzionalità di VS2010.

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 13:38
Sabato, 07/08/2010
Quando una classe non viene trovata visual studio ti chiede se vuoi importare il namespace i cui è definita la classe (ma questo solo se l'assembly contenente il namespace è nelle reference del progetto) oppure se vuoi creare la stub di una classe con quel nome (che sarà ovviamente vuota).

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo