【发布时间】:2012-05-07 10:14:08
【问题描述】:
我想知道使用 C# 发送击键的最快方法是什么。目前我正在使用SendKeys.Send() 和SendKeys.SendWait() 和SendKeys.Flush()。
我正在使用下面的代码来计算他们两个工作需要多长时间的时间:
Stopwatch sw1 = new Stopwatch();
sw1.Start();
for (int a = 1; a <= 1000; a++)
{
SendKeys.Send("a");
SendKeys.Send("{ENTER}");
}
sw1.Stop();
还有:
Stopwatch sw2 = new Stopwatch();
sw2.Start();
for (int b = 1; b <= 1000; b++)
{
SendKeys.SendWait("b");
SendKeys.SendWait("{ENTER}");
SendKeys.Flush();
}
sw2.Stop();
2的结果是:
Result 1: 40119 milliseconds
Result 2: 41882 milliseconds
现在如果我们将SendKeys.Flush() 放在第二个测试中,我们会得到:
Result 3: 46278 milliseconds
我想知道为什么代码中的这些更改会使速度大不相同。
我还想知道是否有更快的方法来发送许多击键,因为我的应用程序经常这样做。 (这些测试是在非常慢的上网本上完成的)
谢谢!
【问题讨论】:
-
为什么需要“快”?
-
它已经很快了,但我想知道最快的方法是什么,因为我认为有不同的方法可以做到这一点。
标签: c# .net performance testing