private void deviceClose() { if (hnd != null) { //останов сбора данных if (threadRunning) { reqStop = true; /* ожидаем завершения потока. Так как * поток работает с GUI и планирует выполнение части * функций в основном потоке, то мы не можем сдесь просто * сделать Join, вызываем Application.DoEvents(), чтобы * в нем обработать запланированные UpdateData()/finishThread() */ while (threadRunning) { Application.DoEvents(); } } // закрытие связи с модулем hnd.Close(); // память освободится диспетчером мусора, т.к. нет больше ссылок hnd = null; } }
public void Dispose() { if (hnd == null) { return; } hnd.Close(); // память освободится диспетчером мусора, т.к. нет больше ссылок hnd = null; }
private void deviceClose() { if (hnd != null) { // закрытие связи с модулем hnd.Close(); // память освободится диспетчером мусора, т.к. нет больше ссылок hnd = null; } }