VS2017在ARM平台上缺少timeSetEvent

时间:2018-09-05 14:36:02

标签: windows visual-studio windowsiot windows-iot-core-10

我正在使用Visual Studio 2017 for ARM平台(带有Windows iOT的Raspberry Pi 3 B +)进行开发。我正在寻找timeSetEvent中的mmiscapi2.h函数。不幸的是,该功能在ARM平台上不可用。

是否有另一个头文件可以代替mmiscapi2.htimeSetEvent?还是应该为ARM使用其他函数n?

我遇到很多困难,不知道我是否清楚。如果没有,请提出问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

timeSetEvent是桌面API,已过时。新应用程序应使用CreateTimerQueueTimer创建计时器队列计时器。

不幸的是,Windows 10 IoT核心版不支持CreateTimerQueueTimer。 Windows 10 IoT Core only supports a subset of the Win32 and .Net API surface area available on various prior versions of Windows

UWP是Windows IoT核心版上的主要应用程序类型。在UWP中,您可以使用ThreadPoolTimerDispatcherTimer定期创建计时器。

您可以参考“ HelloBlinkyBackground”和“ HelloBlinky”示例以了解如何使用它们。

更新:这是UWP中的DispatcherTimer示例。

MainPage.xaml.cpp

#include "pch.h"
#include "MainPage.xaml.h"

using namespace App5;

using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;

// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409

MainPage::MainPage()
{
    InitializeComponent();


    timer_ = ref new DispatcherTimer();
    TimeSpan interval;
    interval.Duration = 500 * 1000 * 10;
    timer_->Interval = interval;
    timer_->Tick += ref new EventHandler<Object ^>(this, &MainPage::OnTick);
    timer_->Start();

}

void MainPage::OnTick(Object ^sender, Object ^args)
{

}

MainPage.xaml.h

//
// MainPage.xaml.h
// Declaration of the MainPage class.
//

#pragma once

#include "MainPage.g.h"

namespace App5
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public ref class MainPage sealed
    {
    public:
        MainPage();

    private:
        void OnTick(Platform::Object ^sender, Platform::Object ^args);

        Windows::UI::Xaml::DispatcherTimer ^timer_;

    };
}

C ++ UWP项目结构:

enter image description here