Это всего лишь предупреждение, а не ошибка: он не влияет на ваш код, вы можете просто проигнорировать его.
В GitHub есть открытая проблема ( link ), в которой говорится, что это ошибка, вызванная внутренним использованием метода discord.js, который был помечен как устаревший. Один из разработчиков сказал, что исправит это в следующем выпуске, а пока просто игнорируйте его.
В этом случае не много, поскольку они оба используют пул потоков под капотом. Я сказал бы, что QueueUserWorkItem () легче считать и видеть то, что продолжается по сравнению с BeginInvoke.
Эта ссылка может помочь. Это - более старая информация, но все еще главным образом применимый http://www.yoda.arachsys.com/csharp/threads/threadpool.shtml
Литеральный ответ на вопрос - то, что оба используют пул потоков, таким образом, различие не очень, если производительность является единственным соображением.
Если вопрос действительно о получении лучшей производительности, то это может помочь знать, что использование пула потоков действительно имеет проблемы. Они включают:
Могло бы стоить исследовать TPL и PLINQ:
Один пример, который они дают используемого TPL:
for (int i = 0; i < 100; i++) {
a[i] = a[i]*a[i];
}
кому:
Parallel.For(0, 100, delegate(int i) {
a[i] = a[i]*a[i];
});