vb.net内联函数帮助使用dispatchtimer.tick

时间:2014-10-09 19:19:29

标签: vb.net windows-phone-8.1

我一直在努力让以下条形码阅读器程序在Windows手机上运行。

我已按照以下网站上的步骤操作:http://developer.nokia.com/community/wiki/Generating_and_scanning_barcodes_using_ZXing_on_Windows_Phone

并将其转换为vb.net,但有一行代码似乎给我带来了麻烦。

网站上的示例使用c#,以下代码块是我遇到问题的

// This timer will be used to scan the camera buffer every 250ms and scan for any barcodes
    _scanTimer = new DispatcherTimer();
    _scanTimer.Interval = TimeSpan.FromMilliseconds(250);
    _scanTimer.Tick += (o, arg) => ScanForBarcode();

当它转换为vb.net时,你得到以下

' This timer will be used to scan the camera buffer every 250ms and scan for any barcodes
_scanTimer = New DispatcherTimer()
_scanTimer.Interval = TimeSpan.FromMilliseconds(250)
_scanTimer.Tick += Function(o, arg) ScanForBarcode()

我在最后一行收到两个错误:

  1. 公共事件节拍(发件人为对象,e为System.EventArgs)'是一个事件,不能直接调用。使用' RaiseEvent'发表活动的声明。
  2. 如果我将RaiseEvent添加到行的开头,则会出现以下错误

    _scanTimer'不属于' PhoneApp2.Scan'

    1. ScanForBarcode()事件产生以下错误:Expression不会产生值。
    2. 对于上述错误的任何帮助都会非常感激,因为我不知道如何纠正错误。

      由于    加雷

1 个答案:

答案 0 :(得分:1)

试试这个:

AddHandler _scanTimer.Tick, Sub(o As Object, arg As EventArgs)
                               ScanForBarcode()
                            End Sub

或者进一步缩短它:

AddHandler _scanTimer.Tick, Sub(o As Object, arg As EventArgs) ScanForBarcode()

在vb.net中使用不同的模式添加事件。