If the external function you are calling has more parameters that can be accomodated with the coroutineCallWith:with:... message you will need to use the coroutineCallWithArray: message. You can also use this message if you find it more convenient. Simply pass each parameter as an element of the array.
| thread |
thread := [] fork. "Create a new suspended thread"
(PlatformFunctions at: 'DosBeep')
coroutineCallWithArray: #(440 3000)
threadKey: thread.
| context thread |
thread := [] fork. "Create a new suspended thread"
context := CgDisplay default handle.
(PlatformFunctions at: 'XBell')
coroutineCallWithArray: #(context 50)
threadKey: thread.