내가 원하는건 특정 반환을 가지는 async method가 아무렇게나 비동기적으로 호출해도 내부적으로는 순차적으로 처리되도록 구현하고싶음. (lock을 거는것처럼)


TPL의 ActionBlock이나 TransformBlock에 Task를 태우면 차례차례 Task가 작동하도록 구현할수 있지만, 자기가 보낸 Task의 반환값을 찾아올수가 없어짐...


그래서 나는 ActionBlock에 아래와같이 전용클래스에 담아 별도의 반환용 Task를 지연호출하는식으로 return을 구현함.

지금보니 TaskCompletionSource를 써야했던 부분인듯.


암튼 저렇게 별도 클래스를 달아줘서 별도의 처리를 주는 형태가 구려서 저거대신 닷넷에 잘 만들어둔게 있는지 찾아보는데 못찾겠음.


var tf = new TaskFactory(new ConcurrentExclusiveSchedulerPair().ExclusiveScheduler)

tf.StartNew ~

이런 방식도 찾아냈는데 이건 Thread단위로는 순차성만 보증하고 await Task들어가면 스까버림


설명을 너무 좆같이 했는데 나도 잘 몰라서 그래 미안해 내가 뭔소리하는건지 알아듣는사람 있으면 외부라이브러리라도 좋으니 찾아줘.