.NET 4.x Как правильно использовать потоки? - C#
Формулировка задачи:
Доброго времени суток столкнулся со следующей проблемой не могу выполнить функцию в потоке
Подскажите как правильно отправить её в отдельный поток
protected string[] readDocuments(string patch) { // код } Thread t = new Thread(readDocuments(files[0])); // Вот на это компилятор ругается t.start();
Решение задачи: «.NET 4.x Как правильно использовать потоки?»
textual
Листинг программы
protected string[] ReadDocuments(string patch) { string[] ro; bool flag = true; ro = new string[12]; XmlReader xReader = XmlReader.Create(@"" + patch + ""); try { while (xReader.Read() && flag == true) { if ((xReader.NodeType == XmlNodeType.Element) && (xReader.Name == "report")) { if (xReader.HasAttributes) { var a = (xReader.GetAttribute("code")); if (Convert.ToInt32(a.Substring(0, 1)) == 1) { ro[1] = a.Substring(0, 7); } else { ro[1] = a.Substring(0, 6); } ro[2] = (xReader.GetAttribute("year")); ro[3] = (xReader.GetAttribute("period")); ro[4] = (xReader.GetAttribute("version")); } } if ((xReader.NodeType == XmlNodeType.Element) && (xReader.Name == "item")) { if (xReader.HasAttributes) { switch (xReader.GetAttribute("name")) { case "KP": ro[5] = (xReader.GetAttribute("value")); break; case "KO": ro[6] = (xReader.GetAttribute("value")); break; case "name": ro[7] = (xReader.GetAttribute("value")); break; case "leader_fio": ro[8] = (xReader.GetAttribute("value")); break; case "responsible_post": ro[9] = (xReader.GetAttribute("value")); break; case "responsible_fio": ro[10] = (xReader.GetAttribute("value")); break; case "phone": ro[11] = (xReader.GetAttribute("value")); flag = false; break; } } } } ro[0] = "" + ro[1] + "" + ro[5] + ""; } catch (Exception ex) { System.Windows.MessageBox.Show( ex.Message +" "+ patch); } return ro; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д