小编Jus*_*tin的帖子

如何在Winform中使用多线程?

我是多线程的新手.我有一个带有标签和进度条的winform.

我想显示处理结果.首先,我使用Application.DoEvents()方法.但是,我发现表格很冷.

然后我在MSDN上阅读了一些关于多线程的文章.

其次,我使用BackgroundWorker来做到这一点.

this.bwForm.DoWork += (o, arg) => { DoConvert(); };
this.bwForm.RunWorkerAsync();
Run Code Online (Sandbox Code Playgroud)

表格不会冻结,我可以在处理时拖动/ drog.不幸的是,它会抛出InvalidOperationException.所以我必须使用它.Control.CheckForIllegalCrossThreadCalls = false;我确保这不是最终的解决方案.

专家,您有什么建议吗?

编辑: 当我调用listview时抛出InvalidOperationException.此代码位于DoWork()中.

          foreach (ListViewItem item in this.listView1.Items)
            {
                //........some operation
                 lbFilesCount.Text = string.Format("{0} files", listView1.Items.Count);
                 progressBar1.Value++;
            }
Run Code Online (Sandbox Code Playgroud)

Edit2: 我在DoWork()中使用委托并调用它并不会抛出异常.但形式再次冻结.怎么做才能使表格在处理时可以放置/悬垂?

.net c# multithreading winforms

14
推荐指数
5
解决办法
1万
查看次数

获取GridView中所选行的索引

我想从gridview中选择的行使用复选框.复选框是这样的! <asp:TemplateField ShowHeader="False"> <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" oncheckedchanged="CheckBox1_CheckedChanged" /> </ItemTemplate> </asp:TemplateField> 我想在每一行中获得一列.怎么做.谢谢!

c# asp.net gridview rows selected

5
推荐指数
1
解决办法
3377
查看次数

标签 统计

c# ×2

.net ×1

asp.net ×1

gridview ×1

multithreading ×1

rows ×1

selected ×1

winforms ×1