Files
Terminal.Gui/docs/api/Mono.Terminal/Mono.Terminal.MainLoop.html
Miguel de Icaza 1d1d50c1dd Update docs
2018-01-27 22:53:22 -05:00

518 lines
20 KiB
HTML

<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Class MainLoop
</title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Class MainLoop
">
<meta name="generator" content="docfx 2.18.2.0">
<link rel="shortcut icon" href="../../favicon.ico">
<link rel="stylesheet" href="../../styles/docfx.vendor.css">
<link rel="stylesheet" href="../../styles/docfx.css">
<link rel="stylesheet" href="../../styles/main.css">
<meta property="docfx:navrel" content="">
<meta property="docfx:tocrel" content="../toc.html">
</head>
<body data-spy="scroll" data-target="#affix">
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="../../index.html">
<img id="logo" class="svg" src="../../logo.svg" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search" id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</div>
</div>
</header>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Mono.Terminal.MainLoop">
<h1 id="Mono_Terminal_MainLoop" data-uid="Mono.Terminal.MainLoop">Class MainLoop
</h1>
<div class="markdown level0 summary"><p>Simple main loop implementation that can be used to monitor
file descriptor, run timers and idle handlers.</p>
</div>
<div class="markdown level0 conceptual"></div>
<div class="inheritance">
<h5>Inheritance</h5>
<div class="level0"><span class="xref">System.Object</span></div>
<div class="level1"><span class="xref">MainLoop</span></div>
</div>
<h6><strong>Namespace</strong>: <a class="xref" href="../Mono.Terminal.html">Mono.Terminal</a></h6>
<h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
<h5 id="Mono_Terminal_MainLoop_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class MainLoop</code></pre>
</div>
<h3 id="constructors">Constructors
</h3>
<a id="Mono_Terminal_MainLoop__ctor_" data-uid="Mono.Terminal.MainLoop.#ctor*"></a>
<h4 id="Mono_Terminal_MainLoop__ctor" data-uid="Mono.Terminal.MainLoop.#ctor">MainLoop()</h4>
<div class="markdown level1 summary"><p>Default constructor</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public MainLoop ();</code></pre>
</div>
<h3 id="methods">Methods
</h3>
<a id="Mono_Terminal_MainLoop_AddIdle_" data-uid="Mono.Terminal.MainLoop.AddIdle*"></a>
<h4 id="Mono_Terminal_MainLoop_AddIdle_System_Func_System_Boolean__" data-uid="Mono.Terminal.MainLoop.AddIdle(System.Func{System.Boolean})">AddIdle(Func&lt;Boolean&gt;)</h4>
<div class="markdown level1 summary"><p>Executes the specified @idleHandler on the idle loop. The return value is a token to remove it.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Func&lt;bool&gt; AddIdle (Func&lt;bool&gt; idleHandler);</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Func</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
<td><span class="parametername">idleHandler</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Func</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<a id="Mono_Terminal_MainLoop_AddTimeout_" data-uid="Mono.Terminal.MainLoop.AddTimeout*"></a>
<h4 id="Mono_Terminal_MainLoop_AddTimeout_System_TimeSpan_System_Func_Mono_Terminal_MainLoop_System_Boolean__" data-uid="Mono.Terminal.MainLoop.AddTimeout(System.TimeSpan,System.Func{Mono.Terminal.MainLoop,System.Boolean})">AddTimeout(TimeSpan, Func&lt;MainLoop,Boolean&gt;)</h4>
<div class="markdown level1 summary"><p>Adds a timeout to the mainloop.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public object AddTimeout (TimeSpan time, Func&lt;Mono.Terminal.MainLoop,bool&gt; callback);</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.TimeSpan</span></td>
<td><span class="parametername">time</span></td>
<td><p>To be added.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Func</span>&lt;<a class="xref" href="Mono.Terminal.MainLoop.html">MainLoop</a>,<span class="xref">System.Boolean</span>&gt;</td>
<td><span class="parametername">callback</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Object</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<h5 id="Mono_Terminal_MainLoop_AddTimeout_System_TimeSpan_System_Func_Mono_Terminal_MainLoop_System_Boolean___remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>When time time specified passes, the callback will be invoked.
If the callback returns true, the timeout will be reset, repeating
the invocation. If it returns false, the timeout will stop.</p>
<pre><code> The returned value is a token that can be used to stop the timeout
by calling RemoveTimeout.
</code></pre></div>
<a id="Mono_Terminal_MainLoop_AddWatch_" data-uid="Mono.Terminal.MainLoop.AddWatch*"></a>
<h4 id="Mono_Terminal_MainLoop_AddWatch_System_Int32_Mono_Terminal_MainLoop_Condition_System_Func_Mono_Terminal_MainLoop_System_Boolean__" data-uid="Mono.Terminal.MainLoop.AddWatch(System.Int32,Mono.Terminal.MainLoop.Condition,System.Func{Mono.Terminal.MainLoop,System.Boolean})">AddWatch(Int32, MainLoop+Condition, Func&lt;MainLoop,Boolean&gt;)</h4>
<div class="markdown level1 summary"><p>Watches a file descriptor for activity.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public object AddWatch (int fileDescriptor, Mono.Terminal.MainLoop.Condition condition, Func&lt;Mono.Terminal.MainLoop,bool&gt; callback);</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">fileDescriptor</span></td>
<td><p>To be added.</p>
</td>
</tr>
<tr>
<td></td>
<td><span class="parametername">condition</span></td>
<td><p>To be added.</p>
</td>
</tr>
<tr>
<td><span class="xref">System.Func</span>&lt;<a class="xref" href="Mono.Terminal.MainLoop.html">MainLoop</a>,<span class="xref">System.Boolean</span>&gt;</td>
<td><span class="parametername">callback</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Object</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<h5 id="Mono_Terminal_MainLoop_AddWatch_System_Int32_Mono_Terminal_MainLoop_Condition_System_Func_Mono_Terminal_MainLoop_System_Boolean___remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>When the condition is met, the provided callback
is invoked. If the callback returns false, the
watch is automatically removed.</p>
<pre><code> The return value is a token that represents this watch, you can
use this token to remove the watch by calling RemoveWatch.
</code></pre></div>
<a id="Mono_Terminal_MainLoop_EventsPending_" data-uid="Mono.Terminal.MainLoop.EventsPending*"></a>
<h4 id="Mono_Terminal_MainLoop_EventsPending_System_Boolean_" data-uid="Mono.Terminal.MainLoop.EventsPending(System.Boolean)">EventsPending(Boolean)</h4>
<div class="markdown level1 summary"><p>Determines whether there are pending events to be processed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool EventsPending (bool wait = false);</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Boolean</span></td>
<td><span class="parametername">wait</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Boolean</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<h5 id="Mono_Terminal_MainLoop_EventsPending_System_Boolean__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>You can use this method if you want to probe if events are pending.
Typically used if you need to flush the input queue while still
running some of your own code in your main thread.</p>
</div>
<a id="Mono_Terminal_MainLoop_Invoke_" data-uid="Mono.Terminal.MainLoop.Invoke*"></a>
<h4 id="Mono_Terminal_MainLoop_Invoke_System_Action_" data-uid="Mono.Terminal.MainLoop.Invoke(System.Action)">Invoke(Action)</h4>
<div class="markdown level1 summary"><p>Runs @action on the thread that is processing events</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Invoke (Action action);</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Action</span></td>
<td><span class="parametername">action</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<a id="Mono_Terminal_MainLoop_MainIteration_" data-uid="Mono.Terminal.MainLoop.MainIteration*"></a>
<h4 id="Mono_Terminal_MainLoop_MainIteration" data-uid="Mono.Terminal.MainLoop.MainIteration">MainIteration()</h4>
<div class="markdown level1 summary"><p>Runs one iteration of timers and file watches</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void MainIteration ();</code></pre>
</div>
<h5 id="Mono_Terminal_MainLoop_MainIteration_remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>You use this to process all pending events (timers, idle handlers and file watches).</p>
<pre><code> You can use it like this:
while (main.EvensPending ()) MainIteration ();
</code></pre></div>
<a id="Mono_Terminal_MainLoop_RemoveIdle_" data-uid="Mono.Terminal.MainLoop.RemoveIdle*"></a>
<h4 id="Mono_Terminal_MainLoop_RemoveIdle_System_Func_System_Boolean__" data-uid="Mono.Terminal.MainLoop.RemoveIdle(System.Func{System.Boolean})">RemoveIdle(Func&lt;Boolean&gt;)</h4>
<div class="markdown level1 summary"><p>Removes the specified idleHandler from processing.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void RemoveIdle (Func&lt;bool&gt; idleHandler);</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Func</span>&lt;<span class="xref">System.Boolean</span>&gt;</td>
<td><span class="parametername">idleHandler</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<a id="Mono_Terminal_MainLoop_RemoveTimeout_" data-uid="Mono.Terminal.MainLoop.RemoveTimeout*"></a>
<h4 id="Mono_Terminal_MainLoop_RemoveTimeout_System_Object_" data-uid="Mono.Terminal.MainLoop.RemoveTimeout(System.Object)">RemoveTimeout(Object)</h4>
<div class="markdown level1 summary"><p>Removes a previously scheduled timeout</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void RemoveTimeout (object token);</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Object</span></td>
<td><span class="parametername">token</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<h5 id="Mono_Terminal_MainLoop_RemoveTimeout_System_Object__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>The token parameter is the value returned by AddTimeout.</p>
</div>
<a id="Mono_Terminal_MainLoop_RemoveWatch_" data-uid="Mono.Terminal.MainLoop.RemoveWatch*"></a>
<h4 id="Mono_Terminal_MainLoop_RemoveWatch_System_Object_" data-uid="Mono.Terminal.MainLoop.RemoveWatch(System.Object)">RemoveWatch(Object)</h4>
<div class="markdown level1 summary"><p>Removes an active watch from the mainloop.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void RemoveWatch (object token);</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Object</span></td>
<td><span class="parametername">token</span></td>
<td><p>To be added.</p>
</td>
</tr>
</tbody>
</table>
<h5 id="Mono_Terminal_MainLoop_RemoveWatch_System_Object__remarks">Remarks</h5>
<div class="markdown level1 remarks"><p>The token parameter is the value returned from AddWatch</p>
</div>
<a id="Mono_Terminal_MainLoop_Run_" data-uid="Mono.Terminal.MainLoop.Run*"></a>
<h4 id="Mono_Terminal_MainLoop_Run" data-uid="Mono.Terminal.MainLoop.Run">Run()</h4>
<div class="markdown level1 summary"><p>Runs the mainloop.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Run ();</code></pre>
</div>
<a id="Mono_Terminal_MainLoop_Stop_" data-uid="Mono.Terminal.MainLoop.Stop*"></a>
<h4 id="Mono_Terminal_MainLoop_Stop" data-uid="Mono.Terminal.MainLoop.Stop">Stop()</h4>
<div class="markdown level1 summary"><p>Stops the mainloop.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Stop ();</code></pre>
</div>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<div class="contribution">
<ul class="nav">
</ul>
</div>
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
<span>Copyright © 2015-2017 Microsoft<br>Generated by <strong>DocFX</strong></span>
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="../../styles/docfx.vendor.js"></script>
<script type="text/javascript" src="../../styles/docfx.js"></script>
<script type="text/javascript" src="../../styles/main.js"></script>
</body>
</html>