protected function asyncCallOnChild($action, array $parameters = array(), callable $onResult = null, callable $onError = null)
    {
        if($this->isExternal())
        {
            throw new \RuntimeException("Calling ClientThread::CallOnChild from Child context. Did you mean ClientThread::CallOnParent?");
        }
        else
        {
            return $this->communicator->SendMessageAsync($this->encode($action, $parameters), $onResult, $onError);
        }
    }