using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private Thread invokeThread;
private delegate void invokeDelegate();
private void StartMethod()
{
}
private void button3_Click_1(object sender, EventArgs e)
{
Stopwatch sw = new Stopwatch();
sw.Start();
invokeThread = new Thread(new ThreadStart(StartMethod));
invokeThread.Start();
sw.Stop();
label1.Text = (sw.ElapsedTicks / (decimal)Stopwatch.Frequency).ToString();
}
}
}
换用 ThreadPool.QueueUserWorkItem创建的话,执行时间不稳定平均表现依然不及调试状态下的执行速度。
这是测试代码,大家可以去试试。
在我i73612cpu上面,速度相差整整一个数量级。
第一个是调试状态下的时间,第二个图是不调试状态下的时间
估计是由于线程池的原因。
如何才能达到调试状态下的速度呢?
一般是调试状态比较慢,发布后速度快。
lz编译一个relase版本的dll出来,放到程序里面试试
为什么要做成dll呢,难道这样速度就会提高?
relase版本和debug版本速度差不多,估计是里面没有什么内容。
为什么在调试状态下快?
@天天上网: 你的非调试状态是什么状态,程序怎么运行起来的 ?
编译成dll可以脱离vs,运行结果比较可靠