Hello! There is a program that works with an external oscilloscope. The oscilloscope starts when the OnDataReadyEventHandler event OnDataReadyEventHandler . It is necessary to suspend the main thread and wait for the end of the event.
_OscDevice.OnDataReady += OnDataReadyEventHandler; // Регистрируем обработчик события о готовности данных измерений The event occurs when the Begin () function is called;
private void button2_Click_3(object sender, EventArgs e) { Load_Data(); Thread.Sleep(250); Begin();//получение данных с осциллографа //Здесь нужно сделать ожидание обработки события OnDataReadyEventHandler,чтобы при следующем вызове функции Begin() не было конфликта из-за обращения к используемому объекту при следующем вызове Begin() ........ Begin(); } Handler itself:
private void OnDataReadyEventHandler(uint nChannelsMask) { // !!! Не отображайте результаты на форме в данной функции - это будет приводить к ошибкам. // !!! Отображайте результаты в ф-ции ProcessData(). SafeProcessData(nChannelsMask); } private void SafeProcessData(uint nChannelsMask) { if (InvokeRequired) Invoke(new InvokeDelegateForProcessData(ProcessData), new Object[] { nChannelsMask }); else ProcessData(nChannelsMask); }