# InvokeLater Function with Args

**URL:** <https://forum.inductiveautomation.com/t/invokelater-function-with-args/91489>\
**Category:** Ignition\
**Tags:** ignition81, vision, scripting\
**Created:** [June 6, 2024, 2:51pm UTC](https://forum.inductiveautomation.com/t/invokelater-function-with-args/91489 "2024-06-06T14:51:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [June 6, 2024, 2:51pm UTC](https://forum.inductiveautomation.com/t/invokelater-function-with-args/91489/1 "2024-06-06T14:51:00Z")

</div>

How do I use `system.util.invokeLater()` with a function that takes arguments.

For instance, I would normally call

```python
setDockedNavSelections(tier1, windowPath)

```

How do I effectively call

```python
system.util.invokeLater(setDockedNavSelections(tier1, windowPath), 200)

```

?

The manual should really be updated with an example for this. I would imagine the use case for with and without args would be split somewhere around 50/50

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [June 6, 2024, 3:22pm UTC](https://forum.inductiveautomation.com/t/invokelater-function-with-args/91489/2 "2024-06-06T15:22:27Z")

</div>

Look in my [later.py](https://www.automation-pros.com/ignition/later.py) script module at `callLater` for an example.

(It uses closures. You can also use default arguments with `def something(...)` to capture values. Or jython's `partial()` function.)

Consider just using `later.callLater()` instead of `system.util.invokeLater()` everywhere.

This:

```python
setDockedNavSelections(tier1, windowPath)

```

Becomes this:

```python
later.callLater(setDockedNavSelections, tier1, windowPath, ms=200)

```

---

<div class="post-metadata">

**Author:** ![amarks](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/amarks/32/45610_2.png) [@amarks](https://forum.inductiveautomation.com/u/amarks)\
**Post date:** [June 6, 2024, 3:41pm UTC](https://forum.inductiveautomation.com/t/invokelater-function-with-args/91489/3 "2024-06-06T15:41:51Z")

</div>

Thanks, didn't realize I could just define a function in-place with the default arguments assigned as my args. So I have

```python
def setDockedNavSelectsionLater():
	setDockedNavSelections(tier1 = tier1, windowPath = windowPath)
	
system.util.invokeLater(setDockedNavSelectsionLater, 200)

```

---

<div class="post-metadata">

**Author:** ![Steven\_Cheron](https://avatars.discourse-cdn.com/v4/letter/s/ebca7d/32.png) [@Steven\_Cheron](https://forum.inductiveautomation.com/u/Steven_Cheron)\
**Post date:** [June 6, 2024, 3:48pm UTC](https://forum.inductiveautomation.com/t/invokelater-function-with-args/91489/4 "2024-06-06T15:48:41Z")

</div>

It works too, but I prefer the @pturmel solution because it's easier to read for another person.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 6, 2024, 4:34pm UTC](https://forum.inductiveautomation.com/t/invokelater-function-with-args/91489/5 "2024-06-06T16:34:47Z")

</div>

I'm a fan of `partial` for this, or you can just effectively make an inline closure via lambda:

```python
system.util.invokeLater(lambda: setDockedNavSelections(tier1, windowPath), 200)

```

---

<div class="post-metadata">

**Author:** ![petr.sasin](https://avatars.discourse-cdn.com/v4/letter/p/9f8e36/32.png) [@petr.sasin](https://forum.inductiveautomation.com/u/petr.sasin)\
**Post date:** [January 5, 2026, 1:29pm UTC](https://forum.inductiveautomation.com/t/invokelater-function-with-args/91489/6 "2026-01-05T13:29:30Z")

</div>

I like it. @paul-griffith style should me mentioned in user manual for `system.util.invokeLater.`
