Это Easy Q, но отличная помощь:
Под заголовком " Получение данных из потоков MSDN ( Здесь ) представляет способ получения данных из дочернего потока с помощью метода обратного вызова, который инкапсулируется делегатом, переданным из основного потока. дочернему потоку - у кого есть данные.
Это хорошо видно (последний пример в MSDN страница )
Мой вопрос таков: поскольку мы занимаемся извлечением данных (из дочерних потоков в основной поток), метод обратного вызова должен выполняться главным потоком, а не дочерним потоком ...
Я немного изменил код (чтобы убедиться в этом), поэтому я прикреплял имя потока перед каждым выводом:
public static void ResultCallback(int lineCount) {
Console.WriteLine(Thread.CurrentThread.Name + ":Independent task printed {0} lines.", lineCount);
}
И я назвал дочерний поток: «Method2», а основной поток «System» ...
Я получил этот вывод: Method2 : Независимое задание напечатало 1 строку.
где правильный вывод должен был быть: Система : Независимое задание напечатано в 1 строку.
Кто здесь пьян? MSDN, я или .NET?