.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;
}