Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 11 févr. 2007 à 21:56
Oui, sauf que le sub sur lequel tu appelle le thread ne peux contenir qu'un Objet en paramètre.
Crée donc une classe contenant les paramètres de ton Sub LocalScreen (éventuellement fais-la hériter de System.EventArgs pour faire cool :p) et ajoute lui des champs correspondants à tes paramètres : rect, Width, Height et Quality.
Class ClassParams
Inherits System.EventArgs
Public rect as Rectangle, Width as integer, Height as integer, Quality as integer
End Class
Ensuite refait ton Sub LocalScreen comme suit :
Sub LocalScreen(O as Object)
Dim params As ClassParams 'La classe que tu as défini
Dim rect as rectangle, Width as integer, Height as integer, Quality as integer
params = CType(O, ClassParams)
rect = params.rect
Width = params.Width
Height = params.Height
Quality = params.Quality
....
End Sub
Et pour lancer ton Thread :
Dim params as new classparams
params.rect = rect
params.width ...
...
Dim localthread as new thread(addressof LocalScreen)
localthread.Start(params)
shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013 11 févr. 2007 à 22:16
j'ai deux erreurs dans ma method:
Public
Shared
Function PictLocalSource(
ByVal rect
As Rectangle,
ByVal Quality
As System.Drawing.Imaging.PixelFormat,
ByVal Width
As
Integer,
ByVal Height
As
Integer,
ByVal PerSec
As
Decimal)
As Bitmap
Dim
localthread
As
Thread
localthread =
New
Thread(
AddressOf
LocalScreen)
localthread.Name =
"Thread1"
localthread.Start(rect, Width, Height, Quality)
End
Function
Erreur 1 La résolution de surcharge a échoué, car aucun 'New' accessible ne peut être appelé avec ces arguments :
'Public Sub New(start As System.Threading.ParameterizedThreadStart)': La méthode 'Private Shared Function LocalScreen(rect As System.Drawing.Rectangle, Width As Integer, Height As Integer, Quality As System.Drawing.Imaging.PixelFormat) As System.Drawing.Bitmap' n'a pas la même signature que le délégué 'Delegate Sub ParameterizedThreadStart(obj As Object)'.
'Public Sub New(start As System.Threading.ThreadStart)': La méthode 'Private Shared Function LocalScreen(rect As System.Drawing.Rectangle, Width As Integer, Height As Integer, Quality As System.Drawing.Imaging.PixelFormat) As System.Drawing.Bitmap' n'a pas la même signature que le délégué 'Delegate Sub ThreadStart()'. C:\Users\Shadow\Documents\Visual Studio 2005\Projects\ScreenServer\Screening\Screening.vb 50 23 Screening (Screening\Screening)
Erreur 2 La résolution de surcharge a échoué, car aucun 'Start' accessible n'accepte ce nombre d'arguments. C:\Users\Shadow\Documents\Visual Studio 2005\Projects\ScreenServer\Screening\Screening.vb 52 9 Screening (Screening\Screening)
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 12 févr. 2007 à 13:43
Ben c'est exactement ce que je dis, il te dis que ta méthode LocalScreen n'a pas la même signature que les deux signatures possibles, à savoir pas de paramètres, ou juste un objet en paramètre...