Как остановить поток в моей неуправляемой DLL, сделанной на C # - PullRequest
1 голос
/ 28 сентября 2011

У меня есть C # DLL, которая запускает поток для опроса USB-устройства. Моя проблема в том, что workerObject и workerThread в функции StopListenUSB равны null.

public class USBDevice
{
   private Worker workerObject;
   private Thread workerThread;

   public void StartListenUSB(int hwnd, uint wm_USER_KEYBOARD)
   {
      workerObject = new Worker();
      workerThread = new Thread(workerObject.DoWork);
      workerThread.Start();
   }

   public void StopListenUSB()
   {
      workerObject.RequestStop();
      workerThread.Join();
   }
}

public class Worker
{
   private volatile bool _shouldStop;

   public void RequestStop() { _shouldStop = true; }

   public void DoWork()
   {
      while (!_shouldStop)
      {...}
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...