title: How many threads does the uno-platform support for WASM (webassembly) projects?
body: <p>I am trying to determine if the uno-platform will work for a specific project that I want to deploy as a WebAssembly app.</p>
  <p>I've played around with Uno and have configured the newly available threading support using:</p>
  <pre class="lang-html prettyprint-override"><code> &lt;MonoWasmRuntimeConfiguration&gt;threads-release&lt;/MonoWasmRuntimeConfiguration&gt;
  </code></pre>
  <p>As I understand it, threading support is only available in Chrome and Edge at this time...but that is ok for my needs.</p>
  <p>I've created a simple button that should spin up 10 worker threads like so:</p>
  <pre class="lang-cs prettyprint-override"><code>        private void Button_Click(object sender, RoutedEventArgs e)
          {
              for (int i = 0; i &lt; 10; i++)
              {
                  var t = new Thread(() =&gt; DoWork());
                  t.Start();
  
              }
  
          }
  
          private void DoWork()
          {
              for (int n = 0; n &lt; 10000; n++)
              {
                  Console.WriteLine($&quot;Task {Thread.CurrentThread.ManagedThreadId} running {n}&quot;);
              }
          }
  </code></pre>
  <p>This code is the only thing added to the default &quot;hello world&quot; WASM project from the uno-platform templates.</p>
  <p>When looking at the output, I can see that 2 threads are working as expected and interweaving results. (prior to the <code>&lt;MonoWasmRuntimeConfiguration&gt;threads-release&lt;/MonoWasmRuntimeConfiguration&gt;</code> the output would be synchronous for a single &quot;thread&quot; and then synchronous for the next &quot;thread&quot;)</p>
  <blockquote>
  <p>Task 3 running 9987</p>
  </blockquote>
  <blockquote>
  <p>Task 2 running 9843</p>
  </blockquote>
  <blockquote>
  <p>Task 3 running 9988</p>
  </blockquote>
  <p>At the completion of both threads, the follow warning is logged in the browser console.</p>
  <pre><code>PThread 70424616 is attempting to join to itself!
  __emscripten_do_pthread_join @ dotnet.js:1
  _pthread_join @ dotnet.js:1
  mono_native_thread_join @ 00806cba:0x70078
  threads_native_thread_join_lock @ 00806cba:0xbfd98
  mono_threads_join_threads @ 00806cba:0x6aefe
  mono_runtime_do_background_work @ 00806cba:0xdb520
  mono_background_exec @ 00806cba:0xf89c5
  Module._mono_background_exec @ dotnet.js:1
  pump_message @ dotnet.js:1
  setTimeout (async)
  _schedule_background_exec @ dotnet.js:1
  mono_threads_schedule_background_job @ 00806cba:0x1612c
  mono_threads_add_joinable_runtime_thread @ 00806cba:0xd8aa4
  sgen_client_thread_detach_with_lock @ 00806cba:0xc67bd
  thread_detach_with_lock @ 00806cba:0xc0142
  unregister_thread @ 00806cba:0x5e469
  mono_thread_info_detach @ 00806cba:0xd98c6
  mono_thread_info_exit @ 00806cba:0x49724
  start_wrapper @ 00806cba:0xc1206
  dynCall_ii @ 00806cba:0x11d3d7
  Module.dynCall_ii @ dotnet.js:1
  onmessage @ dotnet.worker.js:1
  </code></pre>
  <p>Two questions arise which I can't find documentation about.</p>
  <ol>
  <li>Why only 2 threads?   (on both Chrome and Edge)  Is this a browser limitation?  A setting in Uno-platform?</li>
  <li>Why do the remaining 8 threads not get started?  They are essentially lost and none of the work gets performed.  Is this a bug in the uno-platform?  Mono?  emscripten possibly?</li>
  </ol>
  <p>I know threading is still experimental, but I am curious if there is a known limitation that I am hitting?</p>