Diminuire l'utilizzo della CPU

giovedì 11 novembre 2004 - 17.54

KIRA Profilo | Newbie

Ciao a tutti,
ho creato un'applicazione che controlla i processi attivi , ma il problema è che questa applicazione ulizza troppa CPU , e ogni volta che esegue il controllo questa aumenta,senza mai diminuire .


Questo è il pezzo di codice che esegue il controllo:

Dim proc2 As Process
For Each proc2 In Process.GetProcesses
If proc2.ProcessName = "IEXPLORE" Then ' Se il processo attivo è Internet
TracciaSito(proc2.MainWindowTitle)
Exit For

End If
Next


Grazie mille

Brainkiller Profilo | Guru

Ciao,
ma la procedura TracciaSito che cosa fa esattamente ?

ciao
david

KIRA Profilo | Newbie

Non fa altro che controllare se il sito che sto visitando rientra in una lista di siti, altrimenti mi aggiunge tale sito all'interno di una tabella.
come database utilizzo SQL7.0


Private Function CercaSito(ByVal Sito As String)

Dim Myconn As New SqlClient.SqlConnection()

Myconn.ConnectionString = StringaConnnessione
Myconn.Open()

Dim Cmd As New SqlClient.SqlCommand("Select * from siti where siti='" & Trim(Sito) & "'", Myconn)
Dim MyDataadapter As New SqlClient.SqlDataAdapter(Cmd)
Dim MyDataset As New DataSet()
MyDataadapter.Fill(MyDataset, "siti")

If MyDataset.Tables("Siti").Rows.Count = 0 Then
'MsgBox("Sto per tracciare il sito trovato")
Call TracciaSito(Trim(Sito))
Else
Myconn.Close()
Myconn = Nothing
Exit Function

End If

Myconn.Close()
Myconn = Nothing
End Function

Private Sub TracciaSito(ByVal sito As String)
Me.SqlDataAdapter2.Fill(Me.DataSetTraccia1, "logsale")

Dim NuovaRiga As DataRow
NuovaRiga = DataSetTraccia1.Tables("logsale").NewRow
NuovaRiga("Utente") = System.Environment.UserName
NuovaRiga("Computer") = System.Environment.MachineName
If Sala <> "" Then
NuovaRiga("sala") = Sala
'MsgBox("è presente nelle sale")
End If
NuovaRiga("sito") = sito
NuovaRiga("DataORa") = Now

DataSetTraccia1.Tables("LogSaleMediacall").Rows.Add(NuovaRiga)
SqlDataAdapter2.Update(DataSetTraccia1, "LogSale")
'MsgBox("Ho tracciato il sito")


End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim proc2 As Process
Dim sitoInternet As String
Me.Timer1.Enabled = False
' Loop through the Processes and write the name of the Process to the output window.
For Each proc2 In Process.GetProcesses
If proc2.ProcessName = "IEXPLORE" Then ' Se il processo attivo è Internet
MsgBox("Ho trovato l'applicazione explorer")
sitoInternet = proc2.MainWindowTitle
CercaSito(sitoInternet)
Exit For

End If
Next
Me.Timer1.Enabled = True

'MsgBox("Il controllo è stato fatto!!")
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5