Creates a mark at the current point in the incoming MathLink data stream.
If you create a mark, be sure to call DestroyMark to destroy it, or you will create a memory leak.
string head = null; ILinkMark mark = ml.CreateMark(); try { int argc; head = ml.GetFunction(out argc); ml.SeekMark(mark); } finally { ml.DestroyMark(mark); } if (head == "foo") readAndHandleFoo(ml); else if (head == "bar") readAndHandleBar(ml);Note that we use try/finally to ensure that the mark is destroyed even if an exception is thrown.
Some of the usefulness of marks in the C-language MathLink API is obviated by .NET/Link's Expr class.
Exception Type | Condition |
---|---|
MathLinkException | On any MathLink error. |
IMathLink Interface | Wolfram.NETLink Namespace | SeekMark | DestroyMark