protected virtual void OnReceivedData(byte[] receiveddata) { ReceivedDataEventHandler handler = ReceivedData; if (handler != null) { handler(receiveddata); } }
/// <summary> /// Обработчик события прихода данных от SimConnect /// </summary> /// <param name="sender"></param> /// <param name="data"></param> void simconnect_OnRecvSimobjectDataBytype(SimConnect sender, SIMCONNECT_RECV_SIMOBJECT_DATA_BYTYPE data) { switch ((DATA_REQUESTS)data.dwRequestID) { case DATA_REQUESTS.myRequestID: { unsafe { Struct1 s1 = (Struct1)data.dwData[0]; int i = 0; foreach (DataField field in DataFields) { field.Value = s1.fieds[i++]; } }; // на всякий случай создаем копию события т.к. возможна ситуация, что подписчик отпишется от события в момент проверки ниже ReceivedDataEventHandler receivedDataHandler = ReceivedDataEvent; // далее проверяем, что есть ли какой-то подписчик на событие ConnectedToEndPointEvent (эта переменная не равна нулю) и генерируем тогда такое событие if (receivedDataHandler != null) { receivedDataHandler(this, new ReceivedDataEventArgs(this.DataFields)); } } break; default: { // на всякий случай создаем копию события т.к. возможна ситуация, что подписчик отпишется от события в момент проверки ниже UnknownRequestIDEventHandler unknownRequestIDHandler = UnknownRequestIDEvent; // далее проверяем, что есть ли какой-то подписчик на событие ConnectedToEndPointEvent (эта переменная не равна нулю) и генерируем тогда такое событие if (unknownRequestIDHandler != null) { unknownRequestIDHandler(this, new UnknownRequestIDEventArgs(data.dwRequestID)); } } break; } }