C#的Invoke起什么作用

时间:2022-08-28 07:52:08
小弟在看案例时遇到有关线程的问题,请问神恶魔时候使用invoke,一般怎么使用
 private void button2_Click(object sender, EventArgs e)
        {
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)                  
            {
                textBox2.Text = folderBrowserDialog1.SelectedPath;               
                str = textBox1.Text;                                                      
                //获取源文件的名称
                str = "\\" + str.Substring(str.LastIndexOf('\\') + 1, str.Length - str.LastIndexOf('\\') - 1);
                Thread thdAddFile = new Thread(new ThreadStart(SetAddFile));                 
                thdAddFile.Start();                                                         
            }
        }
        public delegate void AddFile();                                                     
        public void SetAddFile()
        {
            AddFile RunAddFile = new AddFile(CopyFile); //此处有错误,想了好久不知道如何修改,请大家帮我看看
            this.Invoke(RunAddFile);                                               
        }
        public void CopyFile(string FormerFile, string toFile, int SectSize, ProgressBar progressBar1)

2 个解决方案

#1


一般是其他线程访问ui资源需要使用,否则回报错。

#2


将操作线程的代码放在UI线程同步执行。

#1


一般是其他线程访问ui资源需要使用,否则回报错。

#2


将操作线程的代码放在UI线程同步执行。