Windows mobile 6.5 SDK GPS样本错误



我似乎在网上找不到一个好的解决方案。我有一台运行Windows Embedded Handheld 6.5的设备。我运行位于

下面的解决方案
C:Program Files (x86)Windows Mobile 6.5.3 DTKSamplesPocketPCCSGPS

我将代码部署到我的设备,而不是模拟器,并且代码在

处以空引用异常中断。
Invoke(updateDataHandler);

我看到的解决方案建议将其更改为

以下
BeginInvoke(updateDataHandler);

但是现在代码在Main中因NullRefreceException而中断。

Application.Run(new Form1());

有人找到解决这个问题的方法吗?

你修改代码了吗?updateDataHandler在Form_Load:

中初始化
    private void Form1_Load(object sender, System.EventArgs e)
    {
        updateDataHandler = new EventHandler(UpdateData);

使该对象不为NULL。但是代码中还有其他令人烦恼的地方,尤其是样本。位置类。您可以使用http://www.hjgode.de/wp/2010/06/11/enhanced-gps-sample-update/和旧的http://www.hjgode.de/wp/2009/05/12/enhanced-gps-sampe/

作为起始点。

示例的主要问题是它没有使用回调(委托)来更新UI。如果从后台线程触发事件处理程序,则处理程序不能直接更新UI。下面是我经常使用的从处理程序更新UI的方法:

    delegate void SetTextCallback(string text);
    public void addLog(string text)
    {
        // InvokeRequired required compares the thread ID of the
        // calling thread to the thread ID of the creating thread.
        // If these threads are different, it returns true.
        if (this.txtLog.InvokeRequired)
        {
            SetTextCallback d = new SetTextCallback(addLog);
            this.Invoke(d, new object[] { text });
        }
        else
        {
            txtLog.Text += text + "rn";
        }
    }

相关内容

  • 没有找到相关文章

最新更新