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