j'ai une fonction toute simple (en bas) qui ne recoit rien et qui ne
retourne rien.
je créer un thread pour cette fonction et le démarre :
dim tThread as new thread(addressof test)
tThread.Start()
mais j'obtient une erreur dans ma fonction lors de l'execution.
au niveau des form1.progressbar1
en gros le débuggeur me dit qu'il faut créer une nouvelle instance pour cet
objet !
J'ai fait un autre test avec la meme fonction mais sans passer ma fonction à
un thread
Et la sa marche je n'ai pas l'erreur !
J'en conclu que cela vient du fait que ma fonction tourne dans un thread
mais je ne sais pas comment contourner le problème.
Si quelqu'un a une petite idée j'en serait ravis :)
Merci d'avance
'-----------------------------
'fonction test
'-----------------------------
public sub test()
dim i as integer
form1.progressbar1.maximum= 1000000
for i = 0 to 1000000
form1.progressbar1.value = i
next
Où est-il dans ton formulaire exactement ? On dirait que tu le lances alors que le formulaire n'est pas entièrement initialisé si j'en crois ce message.
Bon c'est pas tout ça mais faut que j'aille en vacances ;-)
--
Patrice
"Titeuf" a écrit dans le message de news:
Je comprend l'erreur mais je ne sais pas comment la résoudre j'ai essayé déjà en initialisant l'objet mais j'ai un autre message qui me dit "Invoke or BeginInvoke cannot be called on a control until the window handle has been created." peut etre que j'initialise mal mon objet !
le code dans ma form1 (avec une progressbar1 dedans)
Dim t As New Thread(AddressOf test) t.Start()
sa c'est le code dans mon module1.vb :
Public Delegate Sub SyncDelegate() Module Module1
Public Sub test()
Dim del As New SyncDelegate(AddressOf test2) 'Dim prg As New Form1
'prg.ProgressBar1.BeginInvoke(del)
Form1.ProgressBar1.BeginInvoke(del)
End Sub
Public Sub test2()
Dim i As Integer
Form1.ProgressBar1.Maximum = 1000000
For i = 0 To 1000000 Form1.ProgressBar1.Value = i Next
End Sub
End Module
Où est-il dans ton formulaire exactement ? On dirait que tu le lances alors
que le formulaire n'est pas entièrement initialisé si j'en crois ce message.
Bon c'est pas tout ça mais faut que j'aille en vacances ;-)
--
Patrice
"Titeuf" <titeuf@nospam.fr> a écrit dans le message de
news:uCZWigznFHA.3120@TK2MSFTNGP09.phx.gbl...
Je comprend l'erreur mais je ne sais pas comment la résoudre
j'ai essayé déjà en initialisant l'objet mais j'ai un autre message qui me
dit "Invoke or BeginInvoke cannot be called on a control until the window
handle has been created."
peut etre que j'initialise mal mon objet !
le code dans ma form1 (avec une progressbar1 dedans)
Dim t As New Thread(AddressOf test)
t.Start()
sa c'est le code dans mon module1.vb :
Public Delegate Sub SyncDelegate()
Module Module1
Public Sub test()
Dim del As New SyncDelegate(AddressOf test2)
'Dim prg As New Form1
'prg.ProgressBar1.BeginInvoke(del)
Form1.ProgressBar1.BeginInvoke(del)
End Sub
Public Sub test2()
Dim i As Integer
Form1.ProgressBar1.Maximum = 1000000
For i = 0 To 1000000
Form1.ProgressBar1.Value = i
Next
Où est-il dans ton formulaire exactement ? On dirait que tu le lances alors que le formulaire n'est pas entièrement initialisé si j'en crois ce message.
Bon c'est pas tout ça mais faut que j'aille en vacances ;-)
--
Patrice
"Titeuf" a écrit dans le message de news:
Je comprend l'erreur mais je ne sais pas comment la résoudre j'ai essayé déjà en initialisant l'objet mais j'ai un autre message qui me dit "Invoke or BeginInvoke cannot be called on a control until the window handle has been created." peut etre que j'initialise mal mon objet !
le code dans ma form1 (avec une progressbar1 dedans)
Dim t As New Thread(AddressOf test) t.Start()
sa c'est le code dans mon module1.vb :
Public Delegate Sub SyncDelegate() Module Module1
Public Sub test()
Dim del As New SyncDelegate(AddressOf test2) 'Dim prg As New Form1
'prg.ProgressBar1.BeginInvoke(del)
Form1.ProgressBar1.BeginInvoke(del)
End Sub
Public Sub test2()
Dim i As Integer
Form1.ProgressBar1.Maximum = 1000000
For i = 0 To 1000000 Form1.ProgressBar1.Value = i Next
End Sub
End Module
Titeuf
Je le lance à partir d'un bouton pourtant ! enfin bon encore un mystère ce message pour moi.... :)
lol pour moi les vacances commencent dès la semaine prochaine ouf... ;-)
"Patrice" a écrit dans le message de news: %
Où est-il dans ton formulaire exactement ? On dirait que tu le lances alors que le formulaire n'est pas entièrement initialisé si j'en crois ce message.
Bon c'est pas tout ça mais faut que j'aille en vacances ;-)
--
Patrice
"Titeuf" a écrit dans le message de news:
Je comprend l'erreur mais je ne sais pas comment la résoudre j'ai essayé déjà en initialisant l'objet mais j'ai un autre message qui me dit "Invoke or BeginInvoke cannot be called on a control until the window handle has been created." peut etre que j'initialise mal mon objet !
le code dans ma form1 (avec une progressbar1 dedans)
Dim t As New Thread(AddressOf test) t.Start()
sa c'est le code dans mon module1.vb :
Public Delegate Sub SyncDelegate() Module Module1
Public Sub test()
Dim del As New SyncDelegate(AddressOf test2) 'Dim prg As New Form1
'prg.ProgressBar1.BeginInvoke(del)
Form1.ProgressBar1.BeginInvoke(del)
End Sub
Public Sub test2()
Dim i As Integer
Form1.ProgressBar1.Maximum = 1000000
For i = 0 To 1000000 Form1.ProgressBar1.Value = i Next
End Sub
End Module
Je le lance à partir d'un bouton pourtant !
enfin bon encore un mystère ce message pour moi.... :)
lol pour moi les vacances commencent dès la semaine prochaine ouf... ;-)
"Patrice" <nobody@nowhere.com> a écrit dans le message de news:
%23DJPp01nFHA.3256@TK2MSFTNGP10.phx.gbl...
Où est-il dans ton formulaire exactement ? On dirait que tu le lances
alors
que le formulaire n'est pas entièrement initialisé si j'en crois ce
message.
Bon c'est pas tout ça mais faut que j'aille en vacances ;-)
--
Patrice
"Titeuf" <titeuf@nospam.fr> a écrit dans le message de
news:uCZWigznFHA.3120@TK2MSFTNGP09.phx.gbl...
Je comprend l'erreur mais je ne sais pas comment la résoudre
j'ai essayé déjà en initialisant l'objet mais j'ai un autre message qui
me
dit "Invoke or BeginInvoke cannot be called on a control until the window
handle has been created."
peut etre que j'initialise mal mon objet !
le code dans ma form1 (avec une progressbar1 dedans)
Dim t As New Thread(AddressOf test)
t.Start()
sa c'est le code dans mon module1.vb :
Public Delegate Sub SyncDelegate()
Module Module1
Public Sub test()
Dim del As New SyncDelegate(AddressOf test2)
'Dim prg As New Form1
'prg.ProgressBar1.BeginInvoke(del)
Form1.ProgressBar1.BeginInvoke(del)
End Sub
Public Sub test2()
Dim i As Integer
Form1.ProgressBar1.Maximum = 1000000
For i = 0 To 1000000
Form1.ProgressBar1.Value = i
Next
Je le lance à partir d'un bouton pourtant ! enfin bon encore un mystère ce message pour moi.... :)
lol pour moi les vacances commencent dès la semaine prochaine ouf... ;-)
"Patrice" a écrit dans le message de news: %
Où est-il dans ton formulaire exactement ? On dirait que tu le lances alors que le formulaire n'est pas entièrement initialisé si j'en crois ce message.
Bon c'est pas tout ça mais faut que j'aille en vacances ;-)
--
Patrice
"Titeuf" a écrit dans le message de news:
Je comprend l'erreur mais je ne sais pas comment la résoudre j'ai essayé déjà en initialisant l'objet mais j'ai un autre message qui me dit "Invoke or BeginInvoke cannot be called on a control until the window handle has been created." peut etre que j'initialise mal mon objet !
le code dans ma form1 (avec une progressbar1 dedans)
Dim t As New Thread(AddressOf test) t.Start()
sa c'est le code dans mon module1.vb :
Public Delegate Sub SyncDelegate() Module Module1
Public Sub test()
Dim del As New SyncDelegate(AddressOf test2) 'Dim prg As New Form1
'prg.ProgressBar1.BeginInvoke(del)
Form1.ProgressBar1.BeginInvoke(del)
End Sub
Public Sub test2()
Dim i As Integer
Form1.ProgressBar1.Maximum = 1000000
For i = 0 To 1000000 Form1.ProgressBar1.Value = i Next