The data is passed as the second parameter of the Invoke function. [Edit: Okay, it does need to be wrapped in an explicit delegate type... but better to use the general purpose Action(Of String) rather than the specific EventHandler delegate which is designed specifically to handle events]

vbnet Code:
  1. me.Invoke(New Action(Of String)(AddressOf SendSocketData), "My Data")