Chapter 10
Create a routine with the same parameter(s) as the delegate:Private Sub AccessFormMarshal(ByVal textToDisplay As String)
' The parameter(s) to pass to the form.Dim args() As Object = {textToDisplay}' The AccessForm routine contains the code that accesses the form.Dim AccessFormMarshalDelegate1 As _
New AccessFormMarshalDelegate(AddressOf AccessForm)' Call AccessForm, passing the parameters in args.MyBase.Invoke(AccessFormMarshalDelegate1, args)End Sub internal void AccessFormMarshal(string textToDisplay)
{
// The parameter(s) to pass to the form.
object[] args = {textToDisplay};AccessFormMarshalDelegate AccessFormMarshalDelegate1 = null;// The AccessForm routine contains the code that accesses the form.AccessFormMarshalDelegate1 = new AccessFormMarshalDelegate(AccessForm);// Call AccessForm, passing the parameters in args.base.Invoke(AccessFormMarshalDelegate1, args);
}
Create the routine that accesses the form. This example appends the passed text
to a text box (txtUserDisplay) on the form:Private Sub AccessForm(ByVal textToDisplay As String)
txtUserDisplay.AppendText(textToDisplay)
End Sub