C# 如何计算多个异步进程?

C# 如何计算多个异步进程?,c#,process,C#,Process,我有一个过程需要30毫秒。我想发射一百万次。每1ms我启动一个进程。完成所有流程需要多少个ms 更新 我有一个带有以下代码的windows窗体: public partial class Form1 : Form { private AsyncTimer timer; private List<int> grades = new List<int>(); public Form1() { timer = new AsyncT

我有一个过程需要30毫秒。我想发射一百万次。每1ms我启动一个进程。完成所有流程需要多少个
ms

更新

我有一个带有以下代码的windows窗体:

public partial class Form1 : Form
{
    private AsyncTimer timer;
    private List<int> grades = new List<int>();
    public Form1()
    {
        timer = new AsyncTimer();
        timer.OnTimerTick += new AsyncTimer.TimerCallbackDel(Syncer);
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        Stopwatch watch = new Stopwatch();
        watch.Start();
        timer.StartTimer("1");
        watch.Stop();
        string processTime = watch.Elapsed.Milliseconds.ToString();
    }
    private void Syncer()
    {
        grades.Add(DoTast());
    }
    public static int DoTast()
    {
        byte[] source = File.ReadAllBytes(@"C:\Users\Public\Music\Sample Music\Kalimba.mp3");
        byte[] input = File.ReadAllBytes(@"C:\Users\Public\Music\Sample Music\Maid with the Flaxen Hair.mp3");
        int i = 0;
        int grade = 0;
        for (i = 0; i < input.Length; i++)
        {
            if (source[i] == input[i])
            {
                grade++;
            }
        }
        return grade;
    }
}

每1ms我开始一个新任务,比较两个阵列,需要30ms。现在它需要启动100万次多长时间?

如果我们假设您关于每1毫秒启动一个新任务的声明,并且每个任务将在30毫秒后完成,那么您可以看到最多有30个并发任务正在执行。所有任务的执行时间将为

1,000,000 x 1 ms + 30 ms = 1,000,030 ms ~ 16.7 minutes 1000000 x 1毫秒+30毫秒=1000030毫秒~16.7分钟
实际上,执行代码可能会导致不同的结果,因为每个任务之间可能会有较长的延迟。

我怀疑,当您有一百万个任务时,您的过程是否仍然需要30毫秒。此外,您所说的进程、线程或实际进程是什么意思?从给出的信息中无法知道。即使在一个真实的场景中,在一组真实的内核上有真实的代码,最好的答案是“试试看,计时”。我已经更新了问题friends。嗯,我确定30毫秒?(Int32.Parse(interval)*1000将导致它不是秒milliseconds@Thomas我更新了这个问题。现在它将每1ms运行一次。非常感谢你的回答。实际上它大约是29ms。这个结果是在一台有2核CPU的PC上。我假设它将在4或5台服务器上运行,每台服务器处理1/4的进程,我假设它将e 30毫秒在这种情况下(因为异步进程)。那么你如何看待我的近似值呢?@HamidReza:30毫秒(或29毫秒)并不重要。只要任务能够快速完成(30毫秒是快速的)重要的是启动任务之间的间隔。以1毫秒的间隔启动100万个任务需要100万毫秒或大约四分之一小时。另一方面,如果以非常高的速率启动任务(1毫秒的延迟是一个高速率)你会有一长串的任务等待执行,总执行时间可能会远远超过一刻钟。你必须在真实的系统上衡量这一点。坏消息。我会进行更多的研究和测试。非常感谢。 1,000,000 x 1 ms + 30 ms = 1,000,030 ms ~ 16.7 minutes