Mivel már egyszerűbb robotikai feladatoknál is megjelenik az igény a párhuzamosságra, ezt nem kerülhették el a nyelv tervezői sem. A nyelvet ellátták taszkokkal.
Egy RobotC program mindig taszkokból áll, legegyszerűbb esetben csak egyből. A C-ben megszokott main függvény itt egy önálló taszk, mely a programunk indításakor automatikusan elindul.
A nyelv a statikus párhuzamosságot támogatja. Ez abból áll, hogy csak a forráskód szintjén hozhatunk létre folyamatokat, a folyamatok száma fordítási időben meghatározható.
A taszkok definiálásának helyes módja a task kulcsszó segítségével:
Amint a fenti kódban látható, taszkot egy üres return; utasítással tudunk taszkon belül befejezni.
A RobotC nyelv taszkjaihoz teljes hozzáférésünk van, nincsenek korlátozások. Bármelyik taszk leállíthatja, vagy szüneteltetheti a többi taszkot akár explicit paranccsal is.
A taszkokon végzett műveletek:
A RobotC lehetőséget ad a taszkok prioritásának állítására is.
Egy taszk megmondhatja magáról, mekkora prioritása legyen. Erre lehetőséget a
A default prioritás minden taszknak 7, amit 0-tól 255-ig változtathatunk.
A prioritások száma nem arányos a kapott ütemezési időszelettel.
Egy prioritásos sor alapján mindig a legnagyobb prioritású taszk kapja meg az ütemezést, ha pedig ezekből több van, a round robin ütemezést használja a futtató rendszer.
Egy RobotC program minden változója a globális térben van. Az azonos prioritáson lévő taszkok teljesen aszinkron módon futnak, szinkronizálási lehetőségünk csak a hogCPU() és releaseCPU() parancsokon keresztül van.
Tegyük fel, hogy két taszk ugyanazt a függvény szeretné használni.
Mivel a háttérben minden változó globális, az aszinkron függvényhívások elrontják egymás eredményét.
Az alábbi, nagyon egyszerű példa elromlik egy kedvezőtlen ütemezés esetén.
Általános tanácsként a nyelv tervezői, illetve gyakorlottabb felhasználói ilyen esetekben a függvények inline-osítását javasolják.
A jelenség a futtató környezet heap-nélküliségéből, és butított stack-jéből ered. A nyelv hivatalos fórumán időről-időre felvetődik a probléma, de a tervezők eddig még nem álltak elő semmilyen orvoslattal.
Ökölszabály: ha többszöri átnézés után is nemdeterminisztikusan viselkedik a programunk, gyanakodjunk a párhuzamosságra, és védjük le a kritikusnak számító részeket a hog-release módszerrel.
Óvatosan bánjunk a világ megállításával (hog-release), mert ha túl gyakran alkalmazzunk, szekvencializálódhat tőle az egyébként párhuzamosnak szánt program.