Chciałbym wiedzieć, czy można zmienić stan ukończenia bloków danych?Przepływ danych zadania, czy blok danych można zmienić ze stanu zakończenia?
Na przykład oznaczyłem blok danych var block = new BufferBlock<int>();
kompletny z block.Complete()
. Blok jest powiązany z innymi blokami danych. Chciałbym wiedzieć, czy mogę ponownie uruchomić block
, zmieniając jego stan ukończenia z powrotem na pierwotny stan!
Jeśli nie jest to możliwe, w jaki sposób mogę wykonać wiele przebiegów, w tym zakończenie, bez konieczności a) odłączyć wszystkie bloki, b) ponownie utworzyć wszystkie bloki i c) ponownie połączyć wszystkie bloki?
Wszelkie pomysły, które mogą ułatwić wykonywanie cykli przepływu danych, w tym wykonanie każdego bloku w dół łańcucha bez konieczności ponownego tworzenia całego frameworka?
Dzięki
Dlaczego potrzebujesz nawet osobnych serii? Ponadto, dlaczego nie chcesz odtworzyć sieci przepływu danych? Wątpię, że wpłynie to na wydajność (chyba że robisz to wiele razy na sekundę), a także nie powinno sprawić, by twój kod był bardziej skomplikowany. – svick
Oddzielne przebiegi są częścią wymagania. Ponowne utworzenie całej sieci całkowicie zniszczyłoby wydajność uzyskaną dzięki wyborowi przepływu danych tpl. Głównym bólem głowy jest odłączanie i ponowne łączenie, a nie ponowne odtwarzanie każdego bloku przepływu danych. Jeśli zmiana stanu zakończenia nie jest możliwa, w jaki sposób mógłbym w inny sposób zasygnalizować zakończenie bez wpływu na stan zakończenia każdego bloku przepływu danych? Nie mogę po prostu wysłać flagi atomowej, ponieważ typy obiektów w dół łańcucha nie są identyczne (w tym przypadku są zaangażowane transformatory). –