BlockingCollection.AddでIsCompleteとDisposedを検知したい場合、lockで同期して例外を回避するのと、try-catchで例外を握りつぶすののどっちがいい?