ThreadPoolTimer无法正常工作

时间:2015-10-10 23:56:30

标签: c++-cx uwp

我想编写定期执行的代码,因此一些搜索似乎表明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");
}

我的期望是它每秒打印“定时器触发”。但在我的案子中没有打印出任何内容。为什么不起作用?

1 个答案:

答案 0 :(得分:2)

您的TimeSpan似乎不正确。我只是尝试了以下代码来生成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秒计时器。