如何找到经过的时间间隔
How to find elapsed time interval
void Wait(Single wait_time)
{
Single start_time;
Single end_time;
Single ellapsed_time;
ellapsed_time = 0;
start_time = DateTime.Now.Second;
while (ellapsed_time<=wait_time)
{
end_time = DateTime.Now.Second;
ellapsed_time = end_time - start_time;
}
}
上面的代码是用 C# 编写的,根据我的同事的说法,它可以工作。目标是告诉机器等待一段时间,然后继续。例如,当 Wait(5)
被触发时,机器不会继续运行,直到运行时间大于 5。我正在尝试在 C++/CLI 中做同样的事情。这是我的代码:
void Wait(Single wait_time)
{
Single start_time;
Single end_time;
Single ellapsed_time;
ellapsed_time = 0;
start_time = DateTime::Now;
while (ellapsed_time <= wait_time) {
end_time = DateTime::Now;
ellapsed_time = end_time - start_time;
}
}
我收到这个错误:
no suitable conversion function from System::DateTime
to float
exists
我也试过TimeSpan
,但没用。有更好的方法吗?
C#
System.Threading.Thread.Sleep(5000);
C++
#include <chrono>
#include <thread>
int main() {
using namespace std::this_thread;
using namespace std::chrono;
sleep_until(system_clock::now() + seconds(5));
}
以上代码将使您的应用程序休眠 5 秒。
或者我见过有人用
Thread::Sleep(100);
就 CLI 而言。
C++/CLI
using namespace System::Threading;
void wait(int seconds)
{
//1000 miliseconds = 1 second
Thread::Sleep(seconds * 1000);
}
int main()
{
std::cout << "test1" << std::endl;
wait(5); // wait for 5 secs
std::cout << "test2" << std::endl;
}
旁注,您不想浪费宝贵的 CPU 循环通过冗余循环。休息一下吧!
void Wait(Single wait_time)
{
Single start_time;
Single end_time;
Single ellapsed_time;
ellapsed_time = 0;
start_time = DateTime.Now.Second;
while (ellapsed_time<=wait_time)
{
end_time = DateTime.Now.Second;
ellapsed_time = end_time - start_time;
}
}
上面的代码是用 C# 编写的,根据我的同事的说法,它可以工作。目标是告诉机器等待一段时间,然后继续。例如,当 Wait(5)
被触发时,机器不会继续运行,直到运行时间大于 5。我正在尝试在 C++/CLI 中做同样的事情。这是我的代码:
void Wait(Single wait_time)
{
Single start_time;
Single end_time;
Single ellapsed_time;
ellapsed_time = 0;
start_time = DateTime::Now;
while (ellapsed_time <= wait_time) {
end_time = DateTime::Now;
ellapsed_time = end_time - start_time;
}
}
我收到这个错误:
no suitable conversion function from
System::DateTime
tofloat
exists
我也试过TimeSpan
,但没用。有更好的方法吗?
C#
System.Threading.Thread.Sleep(5000);
C++
#include <chrono>
#include <thread>
int main() {
using namespace std::this_thread;
using namespace std::chrono;
sleep_until(system_clock::now() + seconds(5));
}
以上代码将使您的应用程序休眠 5 秒。
或者我见过有人用
Thread::Sleep(100);
就 CLI 而言。
C++/CLI
using namespace System::Threading;
void wait(int seconds)
{
//1000 miliseconds = 1 second
Thread::Sleep(seconds * 1000);
}
int main()
{
std::cout << "test1" << std::endl;
wait(5); // wait for 5 secs
std::cout << "test2" << std::endl;
}
旁注,您不想浪费宝贵的 CPU 循环通过冗余循环。休息一下吧!