La operación de subprocesos no es válida (¿Cómo acceder a los elementos de WinForm desde otros eventos del módulo?)

Tengo un módulo con un evento para sygnal de puerto serie.

serialPort.DataReceived.AddHandler(SerialDataReceivedEventHandler(DataReceived));

donde DataReceived es

let DataReceived a b =
    rxstring <- serialPort.ReadExisting()
    arrayRead <- System.Text.Encoding.UTF8.GetBytes(rxstring)
    if arrayRead.[0] = 0x0Auy then
        ProcessData(a, null)

y ProcessData invoca el método WinForms

let ProcessData(a, b) =
    dataProcessor.Invoke(a, b) |> ignore

cual es

private void ProcessData(object sender, EventArgs e) {
   byte[] m = Core.ncon.ArrayRead;
   switch (m[1]) {
      case 0x01: {
          if (m.Length > 5) {
             int myval = BitConverter.ToInt32(m, 3);
             textBox1.Text += " val: " + myval.ToString() + " ";

pero cuando estoy tratando de acceder a textBox1 estoy obteniendo:

Operación de subprocesos no válida: control 'textBox1' al que se accede desde un hilo que no sea el hilo en el que se creó.

Entonces, la pregunta es ¿Cómo acceder a los elementos de WinForm desde otros eventos del módulo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta