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 秒的计时器。