Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
URGENTE!!!NON MI FUNZIONA UN THREAD IMPORTANTE-CORREZIONE-
giovedì 19 febbraio 2004 - 17.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
gio 19 feb 2004 - 17:09
ragazzi mi serve assolutamente che questo thread mi funzioni, mi posto il mio codice e vi indico dove avviene l'errore, potete darmi un consiglio?
Ciò che viene scritto quando avviene l'errore è: I controlli creati su un thread non possono aveve come elemento padre un controllo su un thread diverso.
PARTE 1********
Private Sub Frm_planning_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim avvio As New System.Threading.Thread(AddressOf caricaplanning)
avvio.Start()
End Sub
***************
PARTE 2********
Private Sub caricaplanning()
SyncLock (Me.Panel2)
'*****caricamento impostazioni dettagli planning*****
Me.Text = "Planning del: " & Format(Now)
'----------------------------------------------------
'*******caricamento del numero di record della tabella camere********
camere.Open("SELECT * FROM camere", db, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockOptimistic)
contatore = 0
While camere.EOF = False
pulsante = New Button()
Me.Panel2.Controls.Add(pulsante) ------> L'ERRORE AVVIENE
pulsante.Cursor = Cursors.Hand
pulsante.TextAlign = ContentAlignment.BottomLeft
pulsante.Font = New Font("Microsoft Sans Serif", 7)
pulsante.Height = "60" : pulsante.Width = "135"
'*****determinazione del top position dei pulsanti*****
contatore = contatore + 1
If contatore <= 10 Then
pulsante.Top = 0
If contatore = 1 Then
pulsante.Left = 0
Else
Dim n_left As Integer
n_left = n_left + 136
pulsante.Left = n_left
End If
End If
'------------------------------------------------------
pulsante.ImageAlign = ContentAlignment.TopRight
pulsante.FlatStyle = FlatStyle.Flat
'*****determinazione dello stato della camera*****
Try
Dim sql As String
gestcliente.Open("SELECT * FROM gestcliente WHERE n_camera='" & camere("cod_camera").Value & "'", db, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockOptimistic)
If gestcliente.EOF = False Then
pulsante.Text = camere("cod_camera").Value & Chr(10) & Chr(10) & gestcliente("cognome").Value & " " & gestcliente("nome").Value
pulsante.Image = Image.FromFile("C:\programmi\hmanager\hotel manager\image\prenotata.png")
pulsante.BackColor = Color.WhiteSmoke
Else
pulsante.Text = camere("cod_camera").Value & Chr(10) & Chr(10) & "ROSSI MARIO"
pulsante.BackColor = Color.WhiteSmoke
pulsante.Image = Image.FromFile("C:\programmi\hmanager\hotel manager\image\libera.png")
pulsante.BackColor = Color.WhiteSmoke
End If
Catch
MsgBox(Err.Description)
Finally
gestcliente.Close()
End Try
AddHandler pulsante.Click, AddressOf clicksubottone
camere.MoveNext()
End While
camere.Close()
End SyncLock
***************
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 20 feb 2004 - 07:52
Semplice, che io sappia non è possibile creare oggetti in un thread secondario ma devono essere creati nel main thread per questo ti dà l'errore. Ci sono dei limiti fisici del sistema, ci dovrebbe essere anceh documentazione a riguardo ma ora non ce l'ho sottomano. Crea quindi tutti i controlli della GUI nel main thread a design o a runtime e poi nei thread secondari esegui le elaborazioni.
ciao
david
Torna su
Stanze Forum
Elenco Threads
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 !