Мне нравится работать с System.Threading.Tasks
. Однако многие из примеров кода, которые я вижу, выглядят примерно так:
Dim lcTask = Task.Factory.StartNew(Sub() DoSomeWork())
Dim lcTaskLong = Task.Factory.StartNew(Sub() DoSomeWork(), TaskCreationOptions.LongRunning)
Task.WaitAll(lcTask, lcTaskLong)
То, что степень выборки.
Задачи реализуют IDisposable
, поэтому, очевидно, я должен их распоряжаться, но что, если я просто хочу "Огонь и забыть"?
Если я не распоряжаюсь, я буду утечка потоков/дескрипторов/памяти/кармы? Я использую задачи "неправильно"? (Нужно просто использовать делегата и оставить задачи самостоятельно?)
Можно ли разместить в ContinueWith()
? (Это похоже на игру в русскую рулетку.)