小编Uma*_*ker的帖子

在任务运行时以另一种形式更新进度条

**最终,我将同时运行四个任务,并有另一个包含四个进度条的表单.我希望每个进度条都能更新,因为它的工作任务正在完成.

这就是我要为初学者做的事情.

我有一个表格上有一些按钮.当我点击一个我正在创建一个新任务来做一些工作.

public partial class MyMainForm : Form
{

    private void btn_doWork_Click(object sender, EventArgs e)
    {
        Task task = new Task(RunComparisons);
        task.Start();
    }

    private void RunComparisons()
    {
        int progressBarValue = 0;
        MyProgressBarForm pBar = new MyProgressBarForm(maxValue, "some text");
        pBar.ShowDialog();
        foreach(string s in nodeCollection)
        {
            //do some work here
            progressBarValue++;
            pBar.updateProgressBar(progressBarValue, "some new text");
        }
        pBar.BeginInvoke(new Action(() => pBar.Close()));
    }
}
Run Code Online (Sandbox Code Playgroud)

在另一个包含带进度条的表单的类中:

public partial class MyProgressBarForm : Form
{
    public MyProgressBarForm(int maxValue, string textToDisplay)
    {
        InitializeComponent();
        MyProgressBarControl.Maximum = maxValue;
        myLabel.Text …
Run Code Online (Sandbox Code Playgroud)

c# winforms c#-5.0

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

在两个列表上使用union不能按预期工作

我已经阅读了大约30篇关于这个主题的帖子,并且认为我按照你的指示写了这封信.

这是我正在使用的课程:

public class UserID
{
    public int user_id { get; set; }
    public bool exists { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我创建了两个好的列表.

List<UserID> List1 = new List<UserID>();
List<UserID> List2 = new List<UserID>();
Run Code Online (Sandbox Code Playgroud)

我已成功填充两个列表.

我正在尝试获取唯一用户ID的列表.我找到了列表的联合方法并给了它一个镜头.

List<UserID> ResultList = new List<UserID>();

ResultList = List1.Union(List2).ToList();
Run Code Online (Sandbox Code Playgroud)

这是问题所在.在此处运行的最后一行之后,ResultList只是放在一起的两个列表.

List1有{10,20,30,40} List2有{10,30,40,50,60}

我期待工会给我:

ResultList = {10,20,30,40,50,60}

但相反,它给了我:

ResultList = {10,20,30,40,10,30,40,50,60}

我究竟做错了什么?我读过很多不同的帖子都说同样的话 - 基本上就是用法.我没有正确使用它吗?我没有得到任何错误,它只是没有给我我期待的联盟.

c# linq c#-4.0

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

标签 统计

c# ×2

c#-4.0 ×1

c#-5.0 ×1

linq ×1

winforms ×1