首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

多线程传递参数的有关问题

2013-02-25 
多线程传递参数的问题请教一下,这个写的有问题吗,viewServer方法传递的参数是否会出现几条线程传递相同的

多线程传递参数的问题
请教一下,这个写的有问题吗,viewServer方法传递的参数是否会出现几条线程传递相同的参数
for (int rowIndex = 0; rowIndex < this.dataGridView1.SelectedRows.Count; rowIndex++)
{

bool isSuccesful=false;
threads[rowIndex] = new Thread(delegate()

isSuccesful = this.viewServer(this.dataGridView1.SelectedRows[rowIndex].Cells[1].Value.ToString(), dt_begin, dt_end); 
}
);
threads[rowIndex].Start();

}
        private bool viewServer(string str_selectedIp, DateTime dt_begin, DateTime dt_end)
        {
            lock (lockReadWrite)
            {
                SysLogView co = new SysLogView();
                string serverip = str_

引用
selectedIp;
                bool isSuccesful = co.LoadEventLog(serverip, dt_begin, dt_end);
                int value = progressBar.Value;
                if(value < progressBar.Maximum)
                {

                    value += 1;
                    //Thread.Sleep(2000);
                    SetProcessBarValue(value);
                    SetLabelValue(value+1);
                    
                }
                
                return isSuccesful;
            }
        } 多线程 参数?
[解决办法]
应该没问题,用局部变量,别用全局变量
[解决办法]
不过  SetProcessBarValue,这个可能会让进度条乱套
[解决办法]
progressBar相当于是全局的,所以在线程里不能公用
后面的 value你从progressBar里取,所以也不会对,会乱套

热点排行