Scusa, era "svuota la memoria" comunque ecco il codice che mi da i problemi.
codice:
Public Sub findprimes(ByVal count As Long)
'eventualmente pulisci il contenuto della TB
Me.RichTextBox1.Clear()
'Aggiungo l'unico numero primo pari:
Me.RichTextBox1.AppendText("2" + " ")
'Il numero correntemente analizzato:
'si parte da 3 e si prendono in consi-
'derazione solo i numeri dispari
Dim cur As Integer = 3
'Col ciclo popolo l'array del risultato
For i As Integer = 1 To count - 1
start:
Dim radq As Integer = Math.Sqrt(cur)
Dim divisore As Integer
'dato che abbiamo solo numeri dispari,
'si analizzano solo divisori dispari
'fino alla radice quadrata del numero
For divisore = 3 To radq Step 2
'se il risultato di una divisione
'da reto zero, il numero non è primo
If (cur Mod divisore) = 0 Then
'quindi aumento di due il numero analizzato
'(ottenendo il numero disperi successivo)
cur += 2
'e ricomincio ad analizzare
GoTo start
End If
Next
'se il risultato di nessuna divisione da 0
'il numero è primo
Me.RichTextBox1.AppendText(cur)
Me.RichTextBox1.AppendText(" ")
Me.ProgressBar1.Maximum = TextBox1.Text
Me.ProgressBar1.Value += 1
cur += 2
multi3d()
Next
End Sub
mentre vengono eseguiti i calcoli, se imposto la variabile "count" cn un numero troppo alto, l'interfaccia si blocca e se cambio finestra, anche se imposto numeri bassi, anche 1000. Tu mi hai consigliato un nuovo thread, ma nonostante scrivaa me.update e me.refresh, continua a non funzionare adeguatamente. Evidentemente sbaglio qualcosa, ma cosa? grazie.