Это кажется довольно субъективным ...
Когда вы говорите «Начиная с .NET 4.0», вы говорите «по состоянию на апрель этого года» - .net существует уже 10 лет, и InvokeRequired/ Invoke использовался в течение последних 9. Почему MS по какой-либо причине нарушает весь существующий код пользовательского интерфейса?Даже если бы существовал новый способ вызова потока, они не могли бы просто изменить шаблон без огромных проблем совместимости.
Кроме того, TPL не аналогичен InvokeRequired / Invoke - TPL о простом параллелизме, иinvoke - это выполнение кода в потоке * .Я не уверен, почему одно заменило бы другое, даже если бы не было проблем с совместимостью.
Обратите внимание, что ничто не мешает вам использовать TPL, чтобы обеспечить вызов компонентов пользовательского интерфейса направильная тема.На самом деле, вы можете легко это сделать.Но это зависит от вас, и текущий API не изменится так, чтобы он не был обратно совместим.