<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<link rel="canonical" href="https://ignite.apache.org/releases/1.6.0/dotnetdoc/functions_func_e.html" />
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>Apache Ignite.NET: Class Members - Functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="ignite_logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">Apache Ignite.NET
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('functions_func_e.html','');});
</script>
<div id="doc-content">
<div class="contents">
&#160;

<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>EnableLocal()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_events_1_1_i_events.html#afca96efeba805045c24daf31442cf2f5">Apache.Ignite.Core.Events.IEvents</a>
</li>
<li>Enter()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_lock.html#ae8ffcfe62d8b58a77b3222ea783deb66">Apache.Ignite.Core.Cache.ICacheLock</a>
</li>
<li>Equals()
: <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_affinity_1_1_affinity_key.html#a4633b8f057fba6efa6315f822fd232a2">Apache.Ignite.Core.Cache.Affinity.AffinityKey</a>
, <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_cache_1_1_cache_result.html#abf03b93604d4b0d1fe77e4580295c254">Apache.Ignite.Core.Cache.CacheResult&lt; T &gt;</a>
, <a class="el" href="struct_apache_1_1_ignite_1_1_core_1_1_common_1_1_ignite_guid.html#a44bb1a106fe2539e0d58f7ca0b41cf4f">Apache.Ignite.Core.Common.IgniteGuid</a>
, <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_base.html#a1c94907971523fbd85ddb18a22d70363">Apache.Ignite.Core.Events.EventBase</a>
</li>
<li>Evaluate()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_event_1_1_i_cache_entry_event_filter.html#a3ce0922ed0e066615b1297c4027f5656">Apache.Ignite.Core.Cache.Event.ICacheEntryEventFilter&lt; TK, TV &gt;</a>
</li>
<li>EventBase()
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_events_1_1_event_base.html#af3f9515ffa9d71dc1690f4548901ba86">Apache.Ignite.Core.Events.EventBase</a>
</li>
<li>Exchange()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_data_structures_1_1_i_atomic_long.html#a5a44de5d24cf15192d0e393fc4977636">Apache.Ignite.Core.DataStructures.IAtomicLong</a>
</li>
<li>Execute()
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_compute_1_1_compute_job_adapter.html#a7d55db1e7dddca32d83781f5239b1e51">Apache.Ignite.Core.Compute.ComputeJobAdapter&lt; T &gt;</a>
, <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_compute_1_1_i_compute_job.html#abca416d1dc9f6f681806422de5a97b01">Apache.Ignite.Core.Compute.IComputeJob&lt; out out TRes &gt;</a>
, <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_services_1_1_i_service.html#a157163294e7ac13115b111ecf3b109f2">Apache.Ignite.Core.Services.IService</a>
</li>
<li>Execute&lt; TArg, TJobRes, TRes &gt;()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_compute_1_1_i_compute.html#a403d388842b7459fb90325593e64f939">Apache.Ignite.Core.Compute.ICompute</a>
</li>
<li>Execute&lt; TJobRes, TRes &gt;()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_compute_1_1_i_compute.html#af3ad8286ae5e60c803390836eddbf28b">Apache.Ignite.Core.Compute.ICompute</a>
</li>
<li>ExecuteAsync&lt; TArg, TJobRes, TRes &gt;()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_compute_1_1_i_compute.html#a84db2310ff58c1e42d1edc21403bc77a">Apache.Ignite.Core.Compute.ICompute</a>
</li>
<li>ExecuteAsync&lt; TJobRes, TRes &gt;()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_compute_1_1_i_compute.html#a75c1ab30a4bce4d82f2fb8e918404ca9">Apache.Ignite.Core.Compute.ICompute</a>
</li>
<li>ExecuteJavaTask&lt; TRes &gt;()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_compute_1_1_i_compute.html#a958990c5a061da659072e86b04fa0a3f">Apache.Ignite.Core.Compute.ICompute</a>
</li>
<li>ExecuteJavaTaskAsync&lt; TRes &gt;()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_compute_1_1_i_compute.html#a02af23e0a25e24cc425f0f0bc858bfca">Apache.Ignite.Core.Compute.ICompute</a>
</li>
<li>Exit()
: <a class="el" href="interface_apache_1_1_ignite_1_1_core_1_1_cache_1_1_i_cache_lock.html#a4e933b456d303b5d36daa90e67a93bde">Apache.Ignite.Core.Cache.ICacheLock</a>
</li>
<li>ExpiryPolicy()
: <a class="el" href="class_apache_1_1_ignite_1_1_core_1_1_cache_1_1_expiry_1_1_expiry_policy.html#a258e5ccb1a8806854a2d2c5d0a60c78e">Apache.Ignite.Core.Cache.Expiry.ExpiryPolicy</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Wed May 18 2016 16:44:13 for Apache Ignite.NET by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
  </ul>
</div>
</body>
</html>
