title: MonoTouch BackgroundWorker calling a textview not working
body: <p>This code its not working </p>
  
  <pre><code>btnUpload.TouchDown += delegate 
              {               
                  BackgroundWorker bw = new BackgroundWorker();
  
                  bw.DoWork += delegate(object sender, DoWorkEventArgs e) {
                      DoUpload(); 
                  };
  
                  bw.RunWorkerAsync();
  
                  bw.RunWorkerCompleted += delegate(object sender3, RunWorkerCompletedEventArgs e3)
                  {
                      Console.WriteLine("Uploades");
                      txtUploadStatus.Text = "Uploaded";
                                        }
  
                  };
  
              };
  </code></pre>
  
  <p>If i remove the txtUploadStatus.Text it works as spected, it is a UITextView</p>
  
  <p>the stacktrace is</p>
  
  <pre><code>2011-02-07 12:49:40.645 PruebaGData[3476:940f] bool _WebTryThreadLock(bool), 0x4a6fd30: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...
  Stacktrace:
  
    at (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging.void_objc_msgSend_IntPtr (intptr,intptr,intptr) &lt;0xffffffff&gt;
    at MonoTouch.UIKit.UITextView.set_Text (string) &lt;0x000e8&gt;
    at PruebaGData.AppDelegate.&lt;FinishedLaunching&gt;m__4 (object,System.ComponentModel.RunWorkerCompletedEventArgs) [0x0000a] in /Users/Alex/Projects/PruebaGData/PruebaGData/Main.cs:79
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted (System.ComponentModel.RunWorkerCompletedEventArgs) &lt;0x00043&gt;
    at System.ComponentModel.BackgroundWorker.&lt;CompleteWorker&gt;m__1 (object) &lt;0x0007b&gt;
    at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) &lt;0x000cb&gt;
  
  Native stacktrace:
  
      0   PruebaGData                         0x0060c9e0 mono_handle_native_sigsegv + 404
      1   PruebaGData                         0x005f60b8 mono_sigsegv_signal_handler + 348
      2   libSystem.B.dylib                   0x311dcddf _sigtramp + 42
      3   WebCore                             0x33ced821 _ZL17_WebTryThreadLockb + 156
      4   WebCore                             0x33ced76f WebThreadLock + 46
      5   UIKit                               0x339f71a1 -[UITextView setText:] + 16
      6   PruebaGData                         0x0004f0b8 (wrapper managed-to-native) MonoTouch.ObjCRuntime.Messaging:void_objc_msgSend_IntPtr (intptr,intptr,intptr) + 80
      7   PruebaGData                         0x000187cc PruebaGData.AppDelegate:&lt;FinishedLaunching&gt;m__4 (object,System.ComponentModel.RunWorkerCompletedEventArgs) + 232
      8   PruebaGData                         0x00084094 System.ComponentModel.BackgroundWorker:OnRunWorkerCompleted (System.ComponentModel.RunWorkerCompletedEventArgs) + 68
      9   PruebaGData                         0x00084120 System.ComponentModel.BackgroundWorker:&lt;CompleteWorker&gt;m__1 (object) + 124
      10  PruebaGData                         0x0039e6f0 (wrapper runtime-invoke) object:runtime_invoke_dynamic (intptr,intptr,intptr,intptr) + 204
      11  PruebaGData                         0x005f5d30 mono_jit_runtime_invoke + 3032
      12  PruebaGData                         0x006d4b80 mono_runtime_invoke + 140
      13  PruebaGData                         0x006d7770 mono_runtime_invoke_array + 2068
      14  PruebaGData                         0x006db444 mono_message_invoke + 640
      15  PruebaGData                         0x006f8320 mono_async_invoke + 212
      16  PruebaGData                         0x006fa5cc async_invoke_thread + 400
      17  PruebaGData                         0x006fc964 start_wrapper + 656
      18  PruebaGData                         0x00722048 thread_start_routine + 240
      19  PruebaGData                         0x00751054 GC_start_routine + 132
      20  libSystem.B.dylib                   0x311df88d _pthread_start + 248
      21  libSystem.B.dylib                   0x311d4a90 thread_assign_default + 4294967295
  
  =================================================================
  Got a SIGSEGV while executing native code. This usually indicates
  a fatal error in the mono runtime or one of the native libraries 
  used by your application.
  =================================================================
  </code></pre>
  
  <p>So how can i call an UI Element from bw.RunWorkerCompleted???</p>