http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5213|回复: 3

[毕业生提问] 关于线程池传值问题,

[复制链接]
发表于 2014-9-23 15:12:59 | 显示全部楼层 |阅读模式
1金钱
        public void s(object item1)
        {
            string[] split = textBox1.Text.Split('|');            
            string str = (string)item1;
            foreach (string item in split)
            {
                dt = DateTime.Now.ToString("yyyyMMdd");
                string Strpath = @"\\192.168.39.206\" + item + "$" + @"\Dexter\DexterLite\DexterLite_" + item + "\\" + CmbWorkName;
                if (Directory.Exists(Strpath))
                {
                    savepath1 = @"\\192.168.39.206\" + item + "$" + @"\Dexter\DexterLite\DexterLite_" + item + "\\" + CmbWorkName + "\\All_Report";
                    txtSavePath.Text = savepath1 + "\\" + dt;
                    if (Directory.Exists(savepath1))
                    {
                        if (!Directory.Exists(savepath1 + "\\" + dt))
                        {
                            Directory.CreateDirectory(savepath1 + "\\" + dt);
                        }
                        path = @"\\192.168.39.206\" + item + "$" + @"\Dexter\DexterLite\DexterLite_" + item + "\\" + CmbWorkName + "\\" + str;
                        if (Directory.Exists(path))
                        {
                            string[] str222 = Directory.GetFiles(path, "*VendorReport.db3", SearchOption.AllDirectories);
                            if (str222.Length>0)
                            {
                                foreach (string str123 in str222)
                                {
                                    string db3 = Path.GetFileName(str123);
                                    File.Copy(str123, savepath1 + "\\" + dt + "\\" + db3, true);
                                }                                
                            }
                            else
                            {
                                list.Add(str);
                            }
                        }
                        else
                        {
                            list.Add(str);
                        }

                    }
                    else
                    {
                        list.Add(str);
                    }
                    break;            
                }
            }
            StreamWriter sw = new StreamWriter(txtSavePath.Text.Trim() + "\\" + "Err.txt", false, Encoding.Default);
            sw.WriteLine(list);
            sw.Flush();
            sw.Dispose();
            sw.Close();
        }



以上是我线程池所调用的函数
txtSavePath = {Text = “((System.Windows.Forms.TextBox)(txtSavePath)).Text”引发了“Microsoft.VisualStudio.Debugger.Runtime.CrossThreadMessagingException”类型的异常}抛出以上异常



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-9-23 15:17:12 | 显示全部楼层
线程里面应该使用委托来调用控件参考这里http://www.sufeinet.com/forum.ph ... on=view&ctid=26
回复

使用道具 举报

发表于 2014-9-23 18:27:24 | 显示全部楼层
考虑是不是这个的原因:
回复

使用道具 举报

发表于 2014-9-23 18:27:34 | 显示全部楼层
CheckForIllegalCrossThreadCalls = false;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 17:36

© 2014-2021

快速回复 返回顶部 返回列表