﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/dotnetdoc/api/Apache.Ignite.Core.Compute.ComputeJobAdapter-1.html" />


    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class ComputeJobAdapter&lt;T&gt;
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class ComputeJobAdapter&lt;T&gt;
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.0">
    
    <link rel="shortcut icon" href="../images/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="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  
<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 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="../images/logo_ignite_32_32.png" 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 class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <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="Apache.Ignite.Core.Compute.ComputeJobAdapter`1">
  
  
  <h1 id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1" class="text-break">Class ComputeJobAdapter&lt;T&gt;
  </h1>
  <div class="markdown level0 summary"><p>Convenience adapter for <a class="xref" href="Apache.Ignite.Core.Compute.IComputeJob-1.html">IComputeJob&lt;TRes&gt;</a> implementations. It provides the following functionality:
<ul>
<li>
     Default implementation of <a class="xref" href="Apache.Ignite.Core.Compute.IComputeJob-1.html#Apache_Ignite_Core_Compute_IComputeJob_1_Cancel">Cancel()</a> method and ability
     to check whether cancellation occurred with <a class="xref" href="Apache.Ignite.Core.Compute.ComputeJobAdapter-1.html#Apache_Ignite_Core_Compute_ComputeJobAdapter_1_IsCancelled">IsCancelled()</a> method.
</li>
<li>
     Ability to set and get job arguments via <a class="xref" href="Apache.Ignite.Core.Compute.ComputeJobAdapter-1.html#Apache_Ignite_Core_Compute_ComputeJobAdapter_1_SetArguments_System_Object___">SetArguments(Object[])</a>
     and <a class="xref" href="Apache.Ignite.Core.Compute.ComputeJobAdapter-1.html#Apache_Ignite_Core_Compute_ComputeJobAdapter_1_GetArgument__1_System_Int32_">GetArgument&lt;TArg&gt;(Int32)</a> methods.
</li>
</ul></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">ComputeJobAdapter&lt;T&gt;</span></div>
  </div>
  <div classs="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="Apache.Ignite.Core.Compute.IComputeJob-1.html">IComputeJob</a>&lt;T&gt;</div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Compute.html">Apache.Ignite.Core.Compute</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Serializable]
public abstract class ComputeJobAdapter&lt;T&gt; : IComputeJob&lt;T&gt;</code></pre>
  </div>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">T</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="constructors">Constructors
  </h3>
  <a id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1__ctor_" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.#ctor*"></a>
  <h4 id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1__ctor" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.#ctor">ComputeJobAdapter()</h4>
  <div class="markdown level1 summary"><p>No-arg constructor.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">protected ComputeJobAdapter()</code></pre>
  </div>
  <a id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1__ctor_" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.#ctor*"></a>
  <h4 id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1__ctor_System_Object___" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.#ctor(System.Object[])">ComputeJobAdapter(Object[])</h4>
  <div class="markdown level1 summary"><p>Creates job with specified arguments.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">protected ComputeJobAdapter(params object[] args)</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">args</span></td>
        <td><p>Optional job arguments.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_Cancel_" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.Cancel*"></a>
  <h4 id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_Cancel" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.Cancel">Cancel()</h4>
  <div class="markdown level1 summary"><p>This method is called when system detects that completion of this
job can no longer alter the overall outcome (for example, when parent task
has already reduced the results).
<p>
Note that job cancellation is only a hint, and it is really up to the actual job
instance to gracefully finish execution and exit.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public void Cancel()</code></pre>
  </div>
  <a id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_Execute_" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.Execute*"></a>
  <h4 id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_Execute" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.Execute">Execute()</h4>
  <div class="markdown level1 summary"><p>Executes this job.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract T Execute()</code></pre>
  </div>
  <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">T</span></td>
        <td><p>Job execution result (possibly <code>null</code>). This result will be returned
in <a class="xref" href="Apache.Ignite.Core.Compute.IComputeJobResult-1.html">IComputeJobResult&lt;TRes&gt;</a> object passed into
<a class="xref" href="Apache.Ignite.Core.Compute.IComputeTask-3.html#Apache_Ignite_Core_Compute_IComputeTask_3_OnResult_Apache_Ignite_Core_Compute_IComputeJobResult__1__System_Collections_Generic_IList_Apache_Ignite_Core_Compute_IComputeJobResult__1___">OnResult(IComputeJobResult&lt;TJobRes&gt;, IList&lt;IComputeJobResult&lt;TJobRes&gt;&gt;)</a>
on caller node.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_GetArgument_" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.GetArgument*"></a>
  <h4 id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_GetArgument__1_System_Int32_" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.GetArgument``1(System.Int32)">GetArgument&lt;TArg&gt;(Int32)</h4>
  <div class="markdown level1 summary"><p>Sets given arguments.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public TArg GetArgument&lt;TArg&gt;(int idx)</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">idx</span></td>
        <td><p>Index of the argument.</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">TArg</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="typeParameters">Type Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="parametername">TArg</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_IsCancelled_" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.IsCancelled*"></a>
  <h4 id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_IsCancelled" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.IsCancelled">IsCancelled()</h4>
  <div class="markdown level1 summary"><p>This method tests whether or not this job was cancelled. This method
is thread-safe and can be called without extra synchronization.
<p>
This method can be periodically called in <a class="xref" href="Apache.Ignite.Core.Compute.IComputeJob-1.html#Apache_Ignite_Core_Compute_IComputeJob_1_Execute">Execute()</a> method
implementation to check whether or not this job cancelled. Note that system
calls <a class="xref" href="Apache.Ignite.Core.Compute.IComputeJob-1.html#Apache_Ignite_Core_Compute_IComputeJob_1_Cancel">Cancel()</a> method only as a hint and this is a responsibility of
the implementation of the job to properly cancel its execution.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">protected bool IsCancelled()</code></pre>
  </div>
  <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><code>True</code> if this job was cancelled, <code>false</code> otherwise.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_SetArguments_" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.SetArguments*"></a>
  <h4 id="Apache_Ignite_Core_Compute_ComputeJobAdapter_1_SetArguments_System_Object___" data-uid="Apache.Ignite.Core.Compute.ComputeJobAdapter`1.SetArguments(System.Object[])">SetArguments(Object[])</h4>
  <div class="markdown level1 summary"><p>Sets given arguments.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public void SetArguments(params object[] args)</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">args</span></td>
        <td><p>Optional job arguments to set.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="implements">Implements</h3>
  <div>
      <a class="xref" href="Apache.Ignite.Core.Compute.IComputeJob-1.html">IComputeJob&lt;TRes&gt;</a>
  </div>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <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>
            © 2015 - 2019 The Apache Software Foundation
            
          </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>
