Siemka
Tworzę projekt z użyciem ZeroMQ i mam taki problem. Potrzebuję funkcji do startowania i ubijania dodatkowego wątku. Jak Start działa ok tak ze stopem są problemy. Poniżej kod:
private Thread _workerThread;
private object _locker = new object();
private bool _stop = false;
public void Start()
{
_workerThread = new Thread(RunZeroMqServer);
_workerThread.Start();
}
public void Stop()
{
lock (_locker)
{
_stop = true;
}
_workerThread.Join();
Console.WriteLine(_workerThread.ThreadState);
}
Gdzieś w internecie znalazłem też coś takiego:
void AsyncZmqListener::Stop()
{
_stopped = true;
delete _zmqContext; // <-- Crashes the application. Changing to 'zmq_term(_zmqContext)' does not terminate recv()
pthread_join(_thread, NULL); // <-- This waits forever
}
ale właśnie tak jak jest napisane w komentarzach, nie działa to.
Ma ktoś może jakiś pomysł na tą funkcję stopa?