Я пытаюсь прочитать поток XML, используя BackgroundWorker
:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
NetworkStream serverStream = clientSocket.GetStream();
XmlReader r = XmlReader.Create(serverStream);
while (r.Read())
{
output something using backgroundWorker1.ReportProgress object
}
}
Я вызываю это, используя backgroundWorker1.RunWorkerAsync(null)
в событии нажатия кнопки.
Программа компилируется и работает нормально, но процесс останавливается на XmlReader.Create
. Ошибок нет, но он говорит, что не может оценить выражение, потому что собственный фрейм находится поверх стека вызовов. Так что, вероятно, ждет завершения процесса.
Проблема в том, что если я делаю это непосредственно щелчком мыши, не используя объект backgroundWorker, программа работает нормально.
Любые идеи? Спасибо.