IT>Примеры как-то все намешаны в кучу. Надо бы общий код вынести отдельно, примеры использования отдельно.
Не понял. Общий код и есть отдельно, а пример один, поэтому его сложно смешать в кучу
IT>В WinForms нужно обычно выполнить некоторый код до BeginInvoke, чтобы выгрести данные из контролов в основном потоке, затем сделать что-то в созданном асинхронном делегате, после чего переключиться назад в основной поток и либо успешно закончить операцию, либо обработать выловленные на предыдущем шаге исключения. Как с этим обстоят дела?
Тут простор для дискуссии. Я считаю, для фоновой асинхронной обработки задач User Interface безопаснее как раз такого не делать. А наоборот уменьшить взаимодействие между UI-потоком и рабочим потоком к самому минимуму.
Но, чтобы не отклоняться от моей темы, я пока не буду об этом