Bonjour,
J'ai un petit problème avec le délégué qui refuse d'affecter une valeur à ma variable.
voici le code :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Module Module1
Public Delegate Function THREADDELG2() As String
Dim MonDegX As THREADDELG2
Public SRes As String = Nothing
Private Function order3() As String
        Return "Order3"
End Function
 
sub Main()
 
MonDegX = New THREADDELG2(AddressOf order3)
Dim iar As IAsyncResult
iar = MonDegX.BeginInvoke(Function(iares As IAsyncResult) SRes = MonDegX.EndInvoke(iares), Nothing)
 
While iar.IsCompleted = False
End While
Console.WriteLine(SRes)
End Sub
la fonction order3 ne fait que retourner la chaine "Order3" donc aucun intérêt.
voila c'est un teste débile mais ça ne marche pas.J'ai toujours ma variable SRes = Nothing.
c'est quoi le problème ?

Mais quand je crée la fonction callback de façon standard , elle marche

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
    Public Sub EndCall(ByVal ia As IAsyncResult)
        SRes = MonDeg.EndInvoke(ia)
        Console.WriteLine(SRes)
    End Sub
 
sub Main()
 
MonDegX = New THREADDELG2(AddressOf order3)
Dim iar As IAsyncResult
iar = MonDegX.BeginInvoke(AddressOf EndCall, Nothing)
 
End Sub
Est ce le problème vient de la fonction lambda ?!!

Merci d'avance