Cześć.
Potrzebuje uruchomić metodę asynchronicznie. Metoda uruchamiana będzie cyklicznie. Nie chciał bym, żeby metoda działała w dwóch wątkach równolegle, tylko, żeby druga i kolejne instancje metody, gdy się zorientują, że już jakaś inna instancja pracuje po prostu zakończyły działanie. Na początku użyłem SemaphoreSlim ale on pozwala tylko czekać, aż wejdę do semafora, a nie mogę sprawdzić, czy semafor nie jest zajęty już. Teoretycznie mogę logikę zrobić tak, że uruchomi mi się n metod w n wątkach, i gdy 1 zakończy zadanie ( opróżni pewną kolejkę) to wszystkie inne się zakończą, ale tworzą mi się niepotrzebne wątki ....Wpadłem na pomysł, żeby zastosować zmienną kontekstową i jeżeli będzie ustawiona to każdy kolejny wątek od razu będzie wychodził z metody -zapewniło by mi to, że będzie żyć tylko jedna metoda. Problem w tym, że jak odczytam zmienną - operacja atomowa, i będzie nie ustawiona, to wątek ją ustawi i zacznie prace dalej, ale po odczycie a przed zapisem inny wątek też mógł ja odczytać i siłą rzeczy będzie pracować 2 wątki. Można robić licznik i inkrementować, ale to głupie. Jakie macie pomysły, żeby zapewnić, żeby metoda zakończyła działanie w momencie gdy pracuje już inna jej instancja ?? Dzięki za pomoc.