xpnteam/xpnet

crash in cmd.InvokeOnce()....where is my error? RESOLVED

Opened this issue · 1 comments

In My class i define:

private IXPlaneApi m_api = null;

In the constructor:
public xPlaneSerialCom(IXPlaneApi api)
{
m_api = api;
......
}

When I send cmnd to xPlane in this function the system crashes:

private void SendCMND(string cmndString,int actionInt)
{
IXPCommand cmd = null;
cmd = m_api.Commands.GetCommand(cmndString);

    switch (actionInt)
     {
            case BEGIN:
                cmd.Begin();
                break;
            case END:
                cmd.End();
                break;
            case ONCE:
                cmd.InvokeOnce();
                break;
      }

}

Where is my error?
Thank you very much!
Alessio

I solved:
#23: X-Plane must only be called from the thread that it creates the Plugin on. Trying to read datarefs or make other calls back into X-Plane from other threads might crash the sim and might give you invalid data values, just as you're seeing.
To do a timer, you have to let X-Plane do it for you. In XPNet you can do that with IXPlaneApi.Processing.RegisterFlightLoopHook().

Thanks