lock (lockObj) return func().Result;
これ意味なくね?
と思ったけどResultの型を勘違いしてた
問題なかったすまん