데이터 블록의 완료 상태를 변경할 수 있는지 여부를 알고 싶습니다.작업 데이터 흐름, 완료 상태에서 데이터 블록을 변경할 수 있습니까?
예를 들어 block.Complete()
으로 끝나는 var block = new BufferBlock<int>();
데이터 블록을 표시했습니다. 블록은 다른 데이터 블록에 연결됩니다. block
을 완료 상태를 원래의 완료 상태로 다시 변경하여 다시 실행할 수 있는지 여부를 알고 싶습니다.
a) 모든 블록의 연결을 해제하지 않고 b) 모든 블록을 다시 인스턴스화하고 c) 모든 블록을 다시 연결하지 않고 완료를 포함하여 여러 번의 실행을 수행 할 수 없다면 어떻게 할 수 있습니까?
전체 프레임 워크를 다시 만들 필요없이 체인을 따라 각 블록을 완료하는 것을 포함하여 데이터 흐름주기를 쉽게 할 수있는 아이디어가 있습니까?
감사
왜 별도로 실행해야합니까? 또한 데이터 흐름 네트워크를 다시 만들고 싶지 않은 이유는 무엇입니까? 퍼포먼스에 영향을 미칠지는 의심 스럽지만 (초당 여러 번하지 않는 한), 코드가 훨씬 복잡해지지 않아야합니다. – svick
별도의 실행은 요구 사항의 일부입니다. 전체 네트워크를 재생성하면 tpl 데이터 흐름의 선택을 통해 얻은 효율성을 완전히 상실하게됩니다. 주요 골칫거리는 각 데이터 흐름 블록의 재 작성이 아니라 연결 해제 및 다시 링크입니다. 완료 상태를 변경할 수 없다면 어떻게하면 각 데이터 흐름 블록의 완료 상태에 영향을 미치지 않고 완료 신호를 보낼 수 있습니까? 체인 아래의 객체 유형이 동일하지 않기 때문에 원자 플래그를 보낼 수 없습니다 (변형 블록이 관련되어 있음). –