小编Wil*_*ley的帖子

从按钮取消异步任务

我需要做的是能够取消运行异步的任务.

我一直在寻找,似乎无法绕过它.我似乎无法辨别它将如何实现到我当前的设置中.

这是我的代码,它解雇了我的任务.任何有关在何处或如何实施取消令牌的帮助将不胜感激.

    private async void startThread()
    {
        //do ui stuff before starting
        ProgressLabel.Text = String.Format("0 / {0} Runs Completed", index.Count());
        ProgressBar.Maximum = index.Count();

        await ExecuteProcesses();

        //sort list of output lines
        outputList = outputList.OrderBy(o => o.RunNumber).ToList();

        foreach (Output o in outputList)
        {
            string outStr = o.RunNumber + "," + o.Index;
            foreach (double oV in o.Values)
            {
                outStr += String.Format(",{0}", oV);
            }

            outputStrings.Add(outStr);
        }

        string[] csvOut = outputStrings.ToArray();

        File.WriteAllLines(settings.OutputFile, csvOut);
        //do ui stuff after completing.

        ProgressLabel.Text = index.Count() + " runs …
Run Code Online (Sandbox Code Playgroud)

c# async-await cancellationtokensource

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

同时运行给定数量的相同进程

我的情况很简单但很复杂.我正在尝试编写一个程序,需要执行1100次外部进程,每次执行4次.我完全不知道如何解决这个问题.我正在编写的应用程序是"Windows窗体应用程序",我正在利用BackgroundWorker来运行异步任务.

例如,我有一个包含1100个不同字符串的列表,我希望每个字符串运行一次该进程,但一次只运行4个,然后继续执行下一个4.

任何帮助,将不胜感激.

c# multithreading backgroundworker

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