Witam Chciałbym wiedzieć, czy jest coś podobnego do oświadczenia await
, które jest używane z zadaniami, które mogę wdrożyć z wątków w C#?Czy jest oczekiwane oświadczenie dotyczące wątków?
Co chcę zrobić, to:
Rozpocznij wątek A, obliczyć pewne dane i umieścić wynik na zmiennej x
. Po przeniesieniu tej zmiennej x
do innego wątku B i jednocześnie Gwint A rozpoczyna się ponownie w celu obliczenia niektórych danych, podczas gdy wątek B rozpoczyna inne obliczenie z wynikiem x
.
UPDATE: Ok wydaje się pewne zamieszanie więc będę bardziej dokładny w moim opisie:
używam dwa czujniki, które wytwarzają dane. Dane muszą być pobierane w taki sposób, aby dane z SensorA były pobierane (co zajmuje dużo czasu) i zaraz po tym dane z SensorB muszą zostać pobrane w innym wątku, podczas gdy SensorA kontynuuje pobieranie innego bloku danych. Problem polega na tym, że nie mogę umieścić w kolejce danych obu czujników w tej samej kolejce, ale muszę przechowywać dane obu czujników w JEDNEJ strukturze danych/obiekcie.
Mój pomysł był taki:
- Pobierz dane z czujnika A w wątku A.
- rezultacie dać wątek B i ponownie wątku A.
- Podczas nawlec uruchamia ponownie wątek B pobiera dane z czujnika B i oblicza dane z czujników a i B
można założyć, że nawlec zawsze potrzebuje więcej czasu niż nici B
Nie jest jasne, co masz oczekują 'await' zrobić ... Po tym wszystkim, jesteś nie czekając na wątek * ukończ *. Być może powinieneś użyć 'Task' dla 'x' za pośrednictwem' TaskCompletionSource', o którym wie wątek A? Następnie wątek B może właśnie czekać na to zadanie. Możesz jednak spojrzeć na Dataflow: https://msdn.microsoft.com/en-us/library/hh228603(v=vs.110).aspx –
To brzmi jak klasyczny producent/konsument. –
Dlaczego chcesz użyć wycofanego wątku zamiast "zadania"? –