This repository has been archived on 2026-10-11. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
HiNC-2025-win-desktop-Deploy/App/wwwroot/HiAPI-docsite/api/Hi.MachiningProcs.NcRunnerSessionState.html
T

671 lines
27 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class NcRunnerSessionState | HiAPI-C# 2025 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class NcRunnerSessionState | HiAPI-C# 2025 ">
<meta name="description" content="NC pipeline state held on a and shared across multiple calls within that session. The per-layer are extended via for each subsequent file so that Previous/Next connectivity (and thus ModalCarrySyntax deep-clone) crosses file boundaries.">
<link rel="icon" href="../img/HiAPI.favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../img/HiAPI.logo.png" alt="">
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="Hi.MachiningProcs.NcRunnerSessionState">
<h1 id="Hi_MachiningProcs_NcRunnerSessionState" data-uid="Hi.MachiningProcs.NcRunnerSessionState" class="text-break">
Class NcRunnerSessionState
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="Hi.html">Hi</a>.<a class="xref" href="Hi.MachiningProcs.html">MachiningProcs</a></dd></dl>
<dl><dt>Assembly</dt><dd>HiMech.dll</dd></dl>
</div>
<div class="markdown summary"><p>NC pipeline state held on a <a class="xref" href="Hi.MachiningProcs.MachiningSession.html">MachiningSession</a> and shared across multiple
<a class="xref" href="Hi.Numerical.INcRunner.html#Hi_Numerical_INcRunner_RunNcLines_System_String_System_Collections_Generic_IEnumerable_System_String__Hi_MachiningProcs_MachiningSession_Hi_MachiningProcs_StepDiagnosticProgress_Hi_NcParsers_NcDiagnosticProgress_System_Threading_CancellationToken_">RunNcLines(string, IEnumerable&lt;string&gt;, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken)</a> calls within that session. The per-layer
<a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_SyntaxPieceLayers">SyntaxPieceLayers</a> are extended via <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html#Hi_Common_Collections_LazyLinkedList_1_AppendSource_System_Collections_Generic_IEnumerable__0__">AppendSource(IEnumerable&lt;T&gt;)</a>
for each subsequent file so that <code>Previous</code>/<code>Next</code> connectivity (and thus
<code>ModalCarrySyntax</code> deep-clone) crosses file boundaries.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public sealed class NcRunnerSessionState : IDisposable</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">NcRunnerSessionState</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="Hi.Common.DuplicateUtil.html#Hi_Common_DuplicateUtil_TryDuplicate__1___0_System_Object___">DuplicateUtil.TryDuplicate&lt;TSelf&gt;(TSelf, params object[])</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__1___0_System_Action___0__">InvokeUtil.SelfInvoke&lt;TSrc&gt;(TSrc, Action&lt;TSrc&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Common.InvokeUtil.html#Hi_Common_InvokeUtil_SelfInvoke__2___0_System_Func___0___1__">InvokeUtil.SelfInvoke&lt;TSrc, TDst&gt;(TSrc, Func&lt;TSrc, TDst&gt;)</a>
</div>
<div>
<a class="xref" href="Hi.Coloring.ColorUtil.html#Hi_Coloring_ColorUtil_GetGloomyColor_System_Object_System_Double_System_Double_">ColorUtil.GetGloomyColor(object, double, double)</a>
</div>
<div>
<a class="xref" href="Hi.Common.NameUtil.html#Hi_Common_NameUtil_GetSelectionName_System_Object_">NameUtil.GetSelectionName(object)</a>
</div>
<div>
<a class="xref" href="Hi.Common.StringUtil.html#Hi_Common_StringUtil_GetPropertyStringIfToStringNotOverloaded_System_Object_System_Boolean_System_Boolean_">StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool)</a>
</div>
<div>
<a class="xref" href="Hi.Parallels.LockUtil.html#Hi_Parallels_LockUtil_Lock_System_Object_">LockUtil.Lock(object)</a>
</div>
</dd></dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcDependencyList_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveNcDependencyList*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcDependencyList" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveNcDependencyList">
EffectiveNcDependencyList
</h3>
<div class="markdown level1 summary"><p>Proxy-resolved dependency list — output of
<a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_GetEffectiveNcDependencyList">GetEffectiveNcDependencyList()</a>, computed once on
the first <a class="xref" href="Hi.Numerical.INcRunner.html#Hi_Numerical_INcRunner_RunNcLines_System_String_System_Collections_Generic_IEnumerable_System_String__Hi_MachiningProcs_MachiningSession_Hi_MachiningProcs_StepDiagnosticProgress_Hi_NcParsers_NcDiagnosticProgress_System_Threading_CancellationToken_">RunNcLines(string, IEnumerable&lt;string&gt;, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken)</a> call and reused for
every file and pipeline stage in the session so each
<a class="xref" href="Hi.NcParsers.Dependencys.INcDependencyProxy.html">INcDependencyProxy</a> resolves to one stable instance.
Set only by <a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_RunNcLines_System_String_System_Collections_Generic_IEnumerable_System_String__Hi_MachiningProcs_MachiningSession_Hi_MachiningProcs_StepDiagnosticProgress_Hi_NcParsers_NcDiagnosticProgress_System_Threading_CancellationToken_">RunNcLines(string, IEnumerable&lt;string&gt;, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken)</a> (and cleared by
<a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_Reset">Reset()</a>); readable for inspection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;INcDependency&gt; EffectiveNcDependencyList { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.NcParsers.Dependencys.INcDependency.html">INcDependency</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcInitializationList_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveNcInitializationList*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcInitializationList" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveNcInitializationList">
EffectiveNcInitializationList
</h3>
<div class="markdown level1 summary"><p>Session-scoped initializer list used to seed the init
<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a> — gated like
<a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcSyntaxList">EffectiveNcSyntaxList</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;INcInitializer&gt; EffectiveNcInitializationList { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.NcParsers.Initializers.INcInitializer.html">INcInitializer</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcSemanticList_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveNcSemanticList*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcSemanticList" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveNcSemanticList">
EffectiveNcSemanticList
</h3>
<div class="markdown level1 summary"><p>Session-scoped semantic list actually driven over the final syntax
layer — gated like <a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcSyntaxList">EffectiveNcSyntaxList</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;INcSemantic&gt; EffectiveNcSemanticList { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.NcParsers.Semantics.INcSemantic.html">INcSemantic</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcSyntaxList_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveNcSyntaxList*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcSyntaxList" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveNcSyntaxList">
EffectiveNcSyntaxList
</h3>
<div class="markdown level1 summary"><p>Session-scoped syntax list actually driven by the layer pipeline —
stamped at session initialization by
<a class="xref" href="Hi.NcParsers.SoftNcRunner.html">ResolveEffectivePipeline(SoftNcRunner, NcRunnerSessionState, NcDiagnosticProgress)</a>. Same
reference as <a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_NcSyntaxList">NcSyntaxList</a> unless the
composition gate skipped external units for this session; the
runner's persisted list is never mutated.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;INcSyntax&gt; EffectiveNcSyntaxList { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.NcParsers.Syntaxs.INcSyntax.html">INcSyntax</a>&gt;</dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveSegmenter_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveSegmenter*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_EffectiveSegmenter" data-uid="Hi.MachiningProcs.NcRunnerSessionState.EffectiveSegmenter">
EffectiveSegmenter
</h3>
<div class="markdown level1 summary"><p>Session-scoped segmenter actually used to split NC text — the
runner's own <a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_Segmenter">Segmenter</a>, or the built-in
fallback when the composition gate rejected an external one.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ISegmenter EffectiveSegmenter { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.NcParsers.Segmenters.ISegmenter.html">ISegmenter</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_NcRunnerSessionState_FreezeExecutedPieces_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.FreezeExecutedPieces*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_FreezeExecutedPieces" data-uid="Hi.MachiningProcs.NcRunnerSessionState.FreezeExecutedPieces">
FreezeExecutedPieces
</h3>
<div class="markdown level1 summary"><p>Whether executed <a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a>s are frozen to their compact
UTF-8 form (<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html#Hi_NcParsers_Syntaxs_SyntaxPiece_Freeze">Freeze()</a>) once they leave the
executing window. Default true — a session retains every executed piece
for its whole lifetime, and the live <code>JsonObject</code> graph costs
~13× the frozen bytes (multi-million-line programs OOM a client
machine without this). Set false only for A/B measurement or when a
custom post-play consumer must mutate executed pieces in place.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool FreezeExecutedPieces { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_NcRunnerSessionState_InitializedByNcRunner_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.InitializedByNcRunner*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_InitializedByNcRunner" data-uid="Hi.MachiningProcs.NcRunnerSessionState.InitializedByNcRunner">
InitializedByNcRunner
</h3>
<div class="markdown level1 summary"><p>The runner whose first <a class="xref" href="Hi.NcParsers.SoftNcRunner.html#Hi_NcParsers_SoftNcRunner_RunNcLines_System_String_System_Collections_Generic_IEnumerable_System_String__Hi_MachiningProcs_MachiningSession_Hi_MachiningProcs_StepDiagnosticProgress_Hi_NcParsers_NcDiagnosticProgress_System_Threading_CancellationToken_">RunNcLines(string, IEnumerable&lt;string&gt;, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken)</a> call built
the pipeline. The layer count and the cached
<a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_EffectiveNcDependencyList">EffectiveNcDependencyList</a> are sized/bound to THIS runner,
so a subsequent call from a DIFFERENT runner (e.g. a CSV play after a
brand-NC play in the same session) must be refused — it would index
past the layer list or silently run with the wrong dependency list.
Cleared by <a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_Reset">Reset()</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public INcRunner InitializedByNcRunner { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="Hi.Numerical.INcRunner.html">INcRunner</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_NcRunnerSessionState_IsInitialized_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.IsInitialized*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_IsInitialized" data-uid="Hi.MachiningProcs.NcRunnerSessionState.IsInitialized">
IsInitialized
</h3>
<div class="markdown level1 summary"><p>True after the first call has built the layered pipeline.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool IsInitialized { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_NcRunnerSessionState_SyntaxPieceLayers_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.SyntaxPieceLayers*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_SyntaxPieceLayers" data-uid="Hi.MachiningProcs.NcRunnerSessionState.SyntaxPieceLayers">
SyntaxPieceLayers
</h3>
<div class="markdown level1 summary"><p>One <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html">LazyLinkedList&lt;T&gt;</a> per pipeline layer.
Index 0 is the source layer (init seed + sentence-derived pieces);
indices 1..NcSyntaxList.Count are the post-NcSyntax layers.
Subsequent <a class="xref" href="Hi.Numerical.INcRunner.html#Hi_Numerical_INcRunner_RunNcLines_System_String_System_Collections_Generic_IEnumerable_System_String__Hi_MachiningProcs_MachiningSession_Hi_MachiningProcs_StepDiagnosticProgress_Hi_NcParsers_NcDiagnosticProgress_System_Threading_CancellationToken_">RunNcLines(string, IEnumerable&lt;string&gt;, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken)</a> calls extend each layer
in place via <a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html#Hi_Common_Collections_LazyLinkedList_1_AppendSource_System_Collections_Generic_IEnumerable__0__">AppendSource(IEnumerable&lt;T&gt;)</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public List&lt;LazyLinkedList&lt;SyntaxPiece&gt;&gt; SyntaxPieceLayers { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1">List</a>&lt;<a class="xref" href="Hi.Common.Collections.LazyLinkedList-1.html">LazyLinkedList</a>&lt;<a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a>&gt;&gt;</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="Hi_MachiningProcs_NcRunnerSessionState_DeferFreeze_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.DeferFreeze*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_DeferFreeze_Hi_NcParsers_Syntaxs_SyntaxPiece_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.DeferFreeze(Hi.NcParsers.Syntaxs.SyntaxPiece)">
DeferFreeze(SyntaxPiece)
</h3>
<div class="markdown level1 summary"><p>Hands an executed piece to the deferred-freeze window: it stays live
for the next <span class="xref">Hi.MachiningProcs.NcRunnerSessionState.FreezeLagPieceCount</span> piece boundaries, then
freezes. No-op when <a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_FreezeExecutedPieces">FreezeExecutedPieces</a> is false or
<code class="paramref">piece</code> is null. Called by
<a class="xref" href="Hi.MachiningProcs.MachiningSession.html#Hi_MachiningProcs_MachiningSession_RunNcLines_Hi_Numerical_INcRunner_System_String_System_Collections_Generic_IEnumerable_System_String__System_Threading_CancellationToken_">RunNcLines(INcRunner, string, IEnumerable&lt;string&gt;, CancellationToken)</a> at each source-command
boundary — the point where the previous piece's syntax builds and
semantics have all completed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void DeferFreeze(SyntaxPiece piece)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>piece</code> <a class="xref" href="Hi.NcParsers.Syntaxs.SyntaxPiece.html">SyntaxPiece</a></dt>
<dd></dd>
</dl>
<a id="Hi_MachiningProcs_NcRunnerSessionState_Dispose_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.Dispose*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_Dispose" data-uid="Hi.MachiningProcs.NcRunnerSessionState.Dispose">
Dispose()
</h3>
<div class="markdown level1 summary"><p>Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Dispose()</code></pre>
</div>
<a id="Hi_MachiningProcs_NcRunnerSessionState_FlushDeferredFreezes_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.FlushDeferredFreezes*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_FlushDeferredFreezes" data-uid="Hi.MachiningProcs.NcRunnerSessionState.FlushDeferredFreezes">
FlushDeferredFreezes()
</h3>
<div class="markdown level1 summary"><p>Freezes everything still in the deferred-freeze window. Called at the
end-of-play action (after the act runner's <code>WaitAll</code>) so a
finished play retains only frozen pieces; when
<a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_FreezeExecutedPieces">FreezeExecutedPieces</a> is false the window is just
dropped.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void FlushDeferredFreezes()</code></pre>
</div>
<a id="Hi_MachiningProcs_NcRunnerSessionState_Reset_" data-uid="Hi.MachiningProcs.NcRunnerSessionState.Reset*"></a>
<h3 id="Hi_MachiningProcs_NcRunnerSessionState_Reset" data-uid="Hi.MachiningProcs.NcRunnerSessionState.Reset">
Reset()
</h3>
<div class="markdown level1 summary"><p>Drops the per-layer pipeline state so
the next <a class="xref" href="Hi.Numerical.INcRunner.html#Hi_Numerical_INcRunner_RunNcLines_System_String_System_Collections_Generic_IEnumerable_System_String__Hi_MachiningProcs_MachiningSession_Hi_MachiningProcs_StepDiagnosticProgress_Hi_NcParsers_NcDiagnosticProgress_System_Threading_CancellationToken_">RunNcLines(string, IEnumerable&lt;string&gt;, MachiningSession, StepDiagnosticProgress, NcDiagnosticProgress, CancellationToken)</a> call re-builds
from scratch. Use this for a controller power reset (where in-flight
SyntaxPiece JSON dataflow — including <code>Vars.Volatile</code>, modal
carries, and the init seed — must vanish) without disposing the
owning <a class="xref" href="Hi.MachiningProcs.MachiningSession.html">MachiningSession</a> itself.</p>
<p>
Idempotent and reusable: after <a class="xref" href="Hi.MachiningProcs.NcRunnerSessionState.html#Hi_MachiningProcs_NcRunnerSessionState_Reset">Reset()</a> the object is in
the same lazy-uninitialised state as a freshly constructed instance,
so the first subsequent <code>RunNcLines</code> hits the
<code>!IsInitialized</code> branch and re-creates everything.
</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void Reset()</code></pre>
</div>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span> Copyright © 2025 <a href='https://superhightech.com.tw'>Tech Coordinate</a>. All rights reserved. <a href='https://superhightech.com.tw'>超級高科技股份有限公司</a> © 2025 版權所有 </span>
</div>
</div>
</footer>
</body>
</html>