<Type Name="Idle" FullName="GLib.Idle">
  <TypeSignature Language="C#" Value="public class Idle" Maintainer="auto" />
  <AssemblyInfo>
    <AssemblyName>glib-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>2.12.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadSafetyStatement>This function is thread safe.</ThreadSafetyStatement>
  <Docs>
    <summary>Idle handlers for GLib-based main-loops</summary>
    <remarks>
      GLib provides an implementation of a "main loop" (an event-based
      main loop that dispatches requests).  The Idle handler class is
      used to register a routine to be called when the main loop is
      idle. 
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>System.Object</BaseTypeName>
  </Base>
  <Interfaces />
  <Members>
    <Member MemberName="Add">
      <MemberSignature Language="C#" Value="public static uint Add (GLib.IdleHandler hndlr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="hndlr" Type="GLib.IdleHandler" />
      </Parameters>
      <Docs>
        <summary>Installs an idle handler for the main loop.</summary>
        <param name="hndlr">The delegate method that will be invoked.</param>
        <returns>The handler code assigned to this idle handler.</returns>
        <remarks>
          <para>
	    This function installs the <paramref name="hndlr" /> as a
	    handler to be invoked when the GLib mainloop is idle.  If
	    the handler returns <see langword="true" /> the handler is
	    kept for another round of Idle execution, if <see langword="false" /> is returned, the handler is removed. 
	  </para>
          <para>
	    This method can be invoked from a different thread than the
	    one running the Gtk main loop.  The delegate will be
	    invoked within the context of the Gtk main loop.
	  </para>
          <para>
	    The thread-safety of this routine can be used to queue
	    work by a thread to be performed in the context of the
	    main Gtk thread.  Gtk# is thread aware, but not thread
	    safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread
	    Programming</link> for details.
	  </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Remove">
      <MemberSignature Language="C#" Value="public static bool Remove (GLib.IdleHandler hndlr);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="hndlr" Type="GLib.IdleHandler" />
      </Parameters>
      <Docs>
        <summary>Removes an Idle handler from the Main Loop.</summary>
        <param name="hndlr">an <see cref="T:GLib.IdleHandler" /> to remove.</param>
        <returns>The function will return true (a <see cref="T:System.Boolean" />) if the delegate was found and removed .</returns>
        <remarks />
      </Docs>
    </Member>
  </Members>
</Type>
