<Type Name="ThreadAssist" FullName="Hyena.ThreadAssist">
  <TypeSignature Language="C#" Value="public static class ThreadAssist" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit ThreadAssist extends System.Object" />
  <AssemblyInfo>
    <AssemblyName>Hyena</AssemblyName>
    <AssemblyVersion>1.5.0.0</AssemblyVersion>
    <AssemblyVersion>2.4.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <summary>A utility to make it easier to spawn execution off from the main thread.</summary>
    <remarks>Needs to be initialized with the <see cref="M:Hyena.ThreadAssist.InitializeMainThread" /> method and a <see cref="P:Hyena.ThreadAssist.ProxyToMainHandler" /> needs to be set before this can be used.</remarks>
  </Docs>
  <Members>
    <Member MemberName="AssertInMainThread">
      <MemberSignature Language="C#" Value="public static void AssertInMainThread ();" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void AssertInMainThread() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="AssertNotInMainThread">
      <MemberSignature Language="C#" Value="public static void AssertNotInMainThread ();" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void AssertNotInMainThread() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="BlockingProxyToMain">
      <MemberSignature Language="C#" Value="public static void BlockingProxyToMain (Hyena.InvokeHandler handler);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void BlockingProxyToMain(class Hyena.InvokeHandler handler) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="handler" Type="Hyena.InvokeHandler" />
      </Parameters>
      <Docs>
        <param name="handler">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="InitializeMainThread">
      <MemberSignature Language="C#" Value="public static void InitializeMainThread ();" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void InitializeMainThread() cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Mark the <see cref="T:System.Threading.Thread" /> on which this method is invoked as the main thread.</summary>
        <remarks>Calling this method is required before <see cref="T:Hyena.ThreadAssist" /> will work. A <see cref="P:Hyena.ThreadAssist.ProxyToMainHandler" /> needs to be set as well.</remarks>
      </Docs>
    </Member>
    <Member MemberName="InMainThread">
      <MemberSignature Language="C#" Value="public static bool InMainThread { get; }" />
      <MemberSignature Language="ILAsm" Value=".property bool InMainThread" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="MainThread">
      <MemberSignature Language="C#" Value="public static System.Threading.Thread MainThread { get; }" />
      <MemberSignature Language="ILAsm" Value=".property class System.Threading.Thread MainThread" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Threading.Thread</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ProxyToMain">
      <MemberSignature Language="C#" Value="public static void ProxyToMain (Hyena.InvokeHandler handler);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void ProxyToMain(class Hyena.InvokeHandler handler) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="handler" Type="Hyena.InvokeHandler" />
      </Parameters>
      <Docs>
        <param name="handler">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ProxyToMainHandler">
      <MemberSignature Language="C#" Value="public static Action&lt;Hyena.InvokeHandler&gt; ProxyToMainHandler { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property class System.Action`1&lt;class Hyena.InvokeHandler&gt; ProxyToMainHandler" />
      <MemberType>Property</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Action&lt;Hyena.InvokeHandler&gt;</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The delegate that will be used to proxy commands to the main thread.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Spawn">
      <MemberSignature Language="C#" Value="public static System.Threading.Thread Spawn (System.Threading.ThreadStart threadedMethod);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Threading.Thread Spawn(class System.Threading.ThreadStart threadedMethod) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Threading.Thread</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="threadedMethod" Type="System.Threading.ThreadStart" />
      </Parameters>
      <Docs>
        <param name="threadedMethod">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Spawn">
      <MemberSignature Language="C#" Value="public static System.Threading.Thread Spawn (System.Threading.ThreadStart threadedMethod, bool autoStart);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig class System.Threading.Thread Spawn(class System.Threading.ThreadStart threadedMethod, bool autoStart) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Threading.Thread</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="threadedMethod" Type="System.Threading.ThreadStart" />
        <Parameter Name="autoStart" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="threadedMethod">To be added.</param>
        <param name="autoStart">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="SpawnFromMain">
      <MemberSignature Language="C#" Value="public static void SpawnFromMain (System.Threading.ThreadStart threadedMethod);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig void SpawnFromMain(class System.Threading.ThreadStart threadedMethod) cil managed" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.5.0.0</AssemblyVersion>
        <AssemblyVersion>2.4.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="threadedMethod" Type="System.Threading.ThreadStart" />
      </Parameters>
      <Docs>
        <param name="threadedMethod">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
</Type>
