小编Mau*_*ppe的帖子

VB.net 当我使用一个类时,当我使用一个模块时,我得到“System.NullReferenceException”,一切正常,希望有人能解释为什么

描述:我使用的是 Windows CE HMI,在 vb.net 中编写代码。我正在通过 Modbus RTU (RS485) 与 4 个流量计进行通信。我正在使用 dll 进行 Modbus 通信。现在,当我在我的程序中启动一个新线程来运行模块的一部分时,一切正常,我正在与 4 米通信。到现在为止还挺好。但是现在我想让我的代码更有效率,而不是在一个模块中抛出四米的所有代码,我想创建 4 个类。

我在我的主窗体(按钮)中得到了这段代码来创建对象。

Dim Meter1 As New cModbusDriver(1) '(1) is the Modbus Meter ID
Dim Meter1_Thread As New Thread(AddressOf Meter1.ModbusDriver)

Meter1_Thread.IsBackground = True
Meter1_Thread.Start()
Run Code Online (Sandbox Code Playgroud)

以下是我班级的一部分:

Public Class cModbusDriver

    Private master As ModbusSerialMaster

    Public Sub ModbusDriver()

        While blnStopModbusThread = False

            Select Case intState
                Case 1
                    Try
                        Dim holding_register() As UShort = master.ReadHoldingRegisters(1, 0, 8)

                        Flow = HextoFloat.ConvertHexToSingle((Hex(holding_register(1)) &      Hex(holding_register(0)))) 
Run Code Online (Sandbox Code Playgroud)

错误 System.NullReferenceException 来自该行Dim …

vb.net

3
推荐指数
1
解决办法
81
查看次数

标签 统计

vb.net ×1