none
请问如何正确的 dispatch the UI thread? RRS feed

  • 问题

  • 我是从这里得到的代码示例

    https://msdn.microsoft.com/zh-cn/library/windows/apps/windows.ui.core.coredispatcher.runasync.aspx?f=255&MSPPError=-2147217396&cs-save-lang=1&cs-lang=cpp#code-snippet-2

    于是我的代码是这样写的

    void RTSceneRenderer::OnPositionChanged(Windows::Devices::Geolocation::Geolocator^ sender, Windows::Devices::Geolocation::PositionChangedEventArgs^ args)
    {
    mDispatcher->RunAsync(
    CoreDispatcherPriority::Normal,
    ref new DispatchedHandler(
    [this, args]()
    {
    }, Platform::CallbackContext::Any));
    }

    但是我调试的时候,一执行这个函数就会出这个错

    0x00E6A7EF 处有未经处理的异常(在 DirectXApp1.WindowsPhone.exe 中):  0xC0000005:  读取位置 0x00000000 时发生访问冲突。

    请问是哪里出错了啊?迫切期待大犇们的帮助,先谢谢啦:)

    2015年2月27日 6:56

全部回复

  • 根据你贴出的代码,首先你贴出的代码的思路使用mdispatcher.runasync通过coredispatcherpriority封送线程是没有问题.你调试时报的错,出现“0xC0000005:  读取位置 0x00000000 时发生访问冲突。这个问题的可能性如下:数据越界、定义的指针未释放、空指针等。

    2015年3月2日 10:02