【问题标题】:C# queue process with different inputs具有不同输入的 C# 队列进程
【发布时间】:2017-11-06 05:07:07
【问题描述】:

我有三个listBox1、listBox2、listBox3存储输入文件。

  private void Bitrate()
    {
        //turn listBox into List
        List<String> data = new List<String>(listBox3.Items.Cast<String>());
        //do process for each item in the List
        Parallel.ForEach(data, (item) =>
        {
           System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo.FileName = "cmd.exe";
            ...............
         });

   private void button5_Click(object sender, EventArgs e)
    {
       Bitrate();
    }

上面的这个 Bitrate() 只处理 ListBox3 中的每个项目,我想让用户选择他们想要使用 Bitrate() 处理的列表框。 在我的情况下,我喜欢 Bitrate() , Bitrate1() ,......所以我想把工作放在队列中,例如:

Queue:
Bitrate() - listBox2
Bitrate() - listBox1
Bitrate1() - listBox3

现在 button5 click 将开始依次运行队列中的每个作业。我被困在这个问题上至少有一个飞蛾......请帮助我......我是新手,并试图自己学习它,这非常痛苦...... 现在我什至想知道我的 Bitrate() 使用 Parallel.ForEach,不知道它是否可以处理 listBox 中的所有项目..

【问题讨论】:

    标签: c# winforms listbox queue


    【解决方案1】:

    要运行队列中的每个作业以供使用 async,await 之类的:-

    private async void button5_Click(object sender, EventArgs e)
    {await Task.Run(() =>{
                Bitrate(listBox1);
                Bitrate(listBox2);
                Bitrate(listBox3);
            });
    }
    
     private async void Bitrate(List<...> list)
    {
        //turn listBox into List
        List<String> data = new List<String>(list.Items.Cast<String>());
        //do process for each item in the List
        Parallel.ForEach(data, (item) =>
        {
           System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo.FileName = "cmd.exe";
            ...............
         });}
    

    我认为它的用途对你来说已经很充分了............

    【讨论】:

    • 非常感谢!你的回答给了我很多想法。但我也想知道如何让用户将工作放入队列。例如,用户想要使用 listBox1 作为输入进行 Bit(),然后使用 listBox3 作为输入进行 Up()...
    猜你喜欢
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    相关资源
    最近更新 更多