Действие, выполняющееся для данного элемента управления, вызвано из неверного потока - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Возникает вот такая ошибка на 13 строке :
void TreeFill()
{
    CheckForIllegalCrossThreadCalls = false;
 
    TreeNode AddFile(FileInfo file)
    {
        var dir = AddDirectory(file.Directory);
        return dir.Nodes.Add(file.Name);
    }
    TreeNode AddDirectory(DirectoryInfo dir)
    {
        var level = dir.Parent == null ? treeView1.Nodes : AddDirectory(dir.Parent).Nodes;
        return level[dir.Name] ?? level.Add(dir.Name, dir.Name);
    }
 
    using (StreamReader _SR = new StreamReader("Paths.txt", Encoding.UTF8))
    {
        string Line = null;
        while ((Line = _SR.ReadLine()) != null)
        {
            DirectoryInfo DI = new DirectoryInfo(Line);
            AddDirectory(DI);
        }
        _SR.Close();
    }
 
    button1.Enabled = true;
 
}
private void button1_Click(object sender, EventArgs e)
{
    Thread _TreeFill = new Thread(TreeFill);
    _TreeFill.Start();
    button1.Enabled = false;
}
С помощью BackGroundWorker'а пытался решить задачу, но не выходило, та же ошибка вылетала Как это решить? Заранее благодарен

Решение задачи: «Действие, выполняющееся для данного элемента управления, вызвано из неверного потока»

textual
Листинг программы
public string SetMessageProgress
{
    set
    {
        var setTextAction = new Action(() => { labelProgress.Text = value; });
 
        if (labelProgress.InvokeRequired)
            labelProgress.Invoke(setTextAction);
        else
            setTextAction();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы