Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Dyango (Normal User)
Pro


Messaggi: 83
Iscritto: 02/01/2009

Segnala al moderatore
Postato alle 19:34
Martedì, 03/08/2010
ciao ragazzi quale istruzione mi restituisce il numero di processori logici(se è presente l hyperthreading) e quelli fisici dal sistema?


la saggezza di un uomo non dipende da quante cose sà ma da quante informazioni riesce a trovare
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 23:46
Martedì, 03/08/2010



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote
Avatar
Dyango (Normal User)
Pro


Messaggi: 83
Iscritto: 02/01/2009

Segnala al moderatore
Postato alle 18:40
Mercoledì, 04/08/2010
Questa e la funziona che mi interessa (dopo avere tradotto dal c#):

Codice sorgente - presumibilmente VB.NET

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


pero vs mi sottolinea queryObj dicendo come errore "La classe 'WindowsApplication1.ManagementObject' non può essere indicizzata perché non contiene proprietà predefinite."
come posso risolvere?


la saggezza di un uomo non dipende da quante cose sà ma da quante informazioni riesce a trovare
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 19:15
Mercoledì, 04/08/2010
sembra un errore specifico di vb.net (che non conosco).
a giudicare gli altri esempi, potresti provare a fare un ToString sul ManagedObject.



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:17
Giovedì, 05/08/2010
Stai cercando di utilizzare una proprietà di default che evidentemente non esiste.

Tu usi queryObj, un oggetto di tipo ManagmentObject, come se fosse un array (o una funziona), il che non è ammissibile, in nessun linguaggio. In .NET, questa sintassi è lecita solo se l'oggetto dispone di una proprietà detta "di default" che viene richiamata con l'argomento passato, in questo caso:
Codice sorgente - presumibilmente Plain Text

  1. queryObj.DefProperty("NumberOfCores")


Ma evidentemente non esiste alcuna proprietà del genere. Devi documentarti:
http://msdn.microsoft.com/it-it/library/system.management. ...
A mio parere, dovresti usare la proprietà Item.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 11:49
Giovedì, 05/08/2010
Testo quotato


Tu usi queryObj, un oggetto di tipo ManagmentObject, come se fosse un array (o una funziona), il che non è ammissibile, in nessun linguaggio.



In C# puoi farlo facendo esporre alla classe un indexer; forse il problema nasce dal fatto che lui ha tradotto questa cosa che però da quello che ci dici in vb.net non c'è.



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 13:06
Giovedì, 05/08/2010
Testo quotato

Postato originariamente da netarrow:

Testo quotato


Tu usi queryObj, un oggetto di tipo ManagmentObject, come se fosse un array (o una funziona), il che non è ammissibile, in nessun linguaggio.



In C# puoi farlo facendo esporre alla classe un indexer; forse il problema nasce dal fatto che lui ha tradotto questa cosa che però da quello che ci dici in vb.net non c'è.



Indexer e proprietà di default sono la stessa cosa. Ad ogni modo, se l'indexer non è definito nella classe ManagmentObject, qualsiasi linguaggio .NET tu usi, non potrai mai scrivere una cosa di quel genere.

P.S.: abbiamo detto la stessa cosa, comunque...

Ultima modifica effettuata da Il Totem il 05/08/2010 alle 13:07


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 13:44
Giovedì, 05/08/2010
Testo quotato


Ad ogni modo, se l'indexer non è definito nella classe ManagmentObject, qualsiasi linguaggio .NET tu usi, non potrai mai scrivere una cosa di quel genere.



Si ok, ma ManagementObject espone un indexer, ereditandolo da ManagementBaseObject.



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote
Avatar
Dyango (Normal User)
Pro


Messaggi: 83
Iscritto: 02/01/2009

Segnala al moderatore
Postato alle 14:50
Giovedì, 05/08/2010
altro errore è la sottolineatura verde su Imports System.Management, che dice nn contiene nessun membro pubblico, infatti ho provato il prog, e gia alla riga
For Each queryObj As ManagementObject In searcher.get
mi da errore NullReferenceException Riferimento a un oggetto non impostato su un'istanza di oggetto puntando sul .get.
non mi e mai capitat una cosa del genere come posso importare correttamente System.Management?


la saggezza di un uomo non dipende da quante cose sà ma da quante informazioni riesce a trovare
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo