相关疑难解决方法(0)

如何测量函数运行的时间?

我想看一个函数运行多长时间.所以我在表单上添加了一个计时器对象,我出来了这段代码:

private int counter = 0;

// Inside button click I have:
timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
Result result = new Result();
result = new GeneticAlgorithms().TabuSearch(parametersTabu, functia);
timer.Stop();
Run Code Online (Sandbox Code Playgroud)

和:

private void timer_Tick(object sender, EventArgs e)
{
    counter++;
    btnTabuSearch.Text = counter.ToString();
}
Run Code Online (Sandbox Code Playgroud)

但这并不算什么.为什么?

.net c# performance timer stopwatch

39
推荐指数
8
解决办法
4万
查看次数

java线程和主线程

什么是使主线程等到所有线程完成的最佳方法?

for(int i=0;i<n;i++){
   Thread t=new Thread();
   t.start();

}

//wait for all threads to finish

java multithreading

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

我如何等待多个线程停止?

我有一个主线程产生大约20个工作线程.
我需要停止主线程,直到所有其他线程都完成.
我知道(线程).Join.但这只适用于一个线程.

多个联接伤害了这样的表现.

t1.Join()
t2.Join()
...
t20.Join()

当程序一个接一个地等待每个人停下来.

我如何使主线程等待所有一组线程结束?

c# multithreading c#-4.0

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

C#.Net 4.0控制台应用程序 - 如何在所有线程完成之前保持活力?

可能重复:
C#:等待所有线程完成

我有一个控制台应用程序产生一些线程,然后退出.每个线程大约需要20秒才能完成.似乎控制台应用程序正在生成线程,然后在线程有机会完成之前退出.

如何告诉控制台应用程序在它生成的所有线程完成之前不要退出?

c# multithreading .net-4.0 console-application

6
推荐指数
2
解决办法
5149
查看次数

等待线程完成

    private void button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < 15; i++)
        {
            Thread nova = new Thread(Method);
            nova.Start();
        }
        listBox1.Items.Add("Some text");
    }

    private void Method()
    {
        for (int i = 0; i < 15; i++)
        {
            Console.WriteLine(i);
        }

    }
Run Code Online (Sandbox Code Playgroud)

这段代码写的:有些文字然后是数字111222333 .....我想它写的是111122223333 ....然后在最后一些文字.有可能用线程(父线程等待子线程)吗?还是我必须使用别的东西?

c#

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

Thread.Join在多个线程上超时

我有一个线程数组,我想加入它们所有的超时(即看看它们是否都在一定的超时内完成).我正在寻找等同于WaitForMultipleObjects的东西或者将线程句柄传递给WaitHandle.WaitAll的方法,但我似乎无法在BCL中找到任何我想要的东西.

我当然可以遍历所有线程(见下文),但这意味着整个函数可能需要超时*threads.Count才能返回.

private Thread[] threads;

public bool HaveAllThreadsFinished(Timespan timeout)
{
     foreach (var thread in threads)
     {
        if (!thread.Join(timeout))
        {
            return false;
        }                
     }
     return true;
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading

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