ThreadPoolTimer 不工作
ThreadPoolTimer not working
我想编写定期执行的代码,所以一些搜索似乎表明 ThreadPoolTimer 适合我的需要。这是我实现它的尝试:
MainPage::MainPage()
{
// Timer code
TimeSpan period;
period.Duration = 100000000000; // 1 second
ThreadPoolTimer::CreatePeriodicTimer(ref new TimerElapsedHandler(this, &MainPage::TestTimer), period);
}
// Dummy method to test timer
void MainPage::TestTimer(Windows::System::Threading::ThreadPoolTimer^ timer)
{
OutputDebugString(L"Timer triggered\n");
}
我的期望是它每秒打印 "Timer triggered"。但是在我的案例中什么也没有打印出来。为什么不起作用?
您的时间跨度似乎不正确。我刚刚尝试了以下代码来生成一个 1 秒计时器。
MainPage::MainPage()
{
InitializeComponent();
TimeSpan period;
period.Duration = 10000000; // 1 second
ThreadPoolTimer::CreatePeriodicTimer(ref new TimerElapsedHandler(this, &MainPage::TestTimer), period);
}
void MainPage::TestTimer(Windows::System::Threading::ThreadPoolTimer^ timer)
{
OutputDebugString(L"Timer triggered\n");
}
我相信您的代码生成了一个 10000 秒的计时器。
我想编写定期执行的代码,所以一些搜索似乎表明 ThreadPoolTimer 适合我的需要。这是我实现它的尝试:
MainPage::MainPage()
{
// Timer code
TimeSpan period;
period.Duration = 100000000000; // 1 second
ThreadPoolTimer::CreatePeriodicTimer(ref new TimerElapsedHandler(this, &MainPage::TestTimer), period);
}
// Dummy method to test timer
void MainPage::TestTimer(Windows::System::Threading::ThreadPoolTimer^ timer)
{
OutputDebugString(L"Timer triggered\n");
}
我的期望是它每秒打印 "Timer triggered"。但是在我的案例中什么也没有打印出来。为什么不起作用?
您的时间跨度似乎不正确。我刚刚尝试了以下代码来生成一个 1 秒计时器。
MainPage::MainPage()
{
InitializeComponent();
TimeSpan period;
period.Duration = 10000000; // 1 second
ThreadPoolTimer::CreatePeriodicTimer(ref new TimerElapsedHandler(this, &MainPage::TestTimer), period);
}
void MainPage::TestTimer(Windows::System::Threading::ThreadPoolTimer^ timer)
{
OutputDebugString(L"Timer triggered\n");
}
我相信您的代码生成了一个 10000 秒的计时器。