线程1填充一个结构,然后启动线程2和3,每个线程都需要引用相同的结构才能使用它。
无法复制结构-它很大,会花费太长时间,因为结构中的帧数组每个都很大-可能每个25KB。
启动线程时将结构引用传递给线程2和3时,当前代码出错。
如何为线程2和3提供对线程1创建的结构的引用?
代码...
Structure Antenna_Frame_Buffer_structure
dim frame_buffer_index as integer
dim board0_frame_array as Byte()
dim board1_frame_array as Byte()
dim board2_frame_array as Byte()
dim need_to_write as boolean
dim write_done_flag as boolean
end structure
dim antenna_frame_buffer as Antenna_Frame_Buffer_structure
...
' ONE THREAD STARTS TWO OTHER THREADS.................
new_buffer_write_thread = new Thread( AddressOf thread1 )
new_buffer_write_thread.Start( antenna_frame_buffer )
new_buffer_write_thread = new Thread( AddressOf thread2 )
new_buffer_write_thread.Start( antenna_frame_buffer )
...
'EACH OF OTHER TWO THREADS NEEDS TO REFERENCE SAME STRUCTURE.....
sub thread1( ByRef antenna_frame_buffer as Antenna_Frame_Buffer_structure )
...
end sub
sub thread2( ByRef antenna_frame_buffer as Antenna_Frame_Buffer_structure )
...
end sub
错误
严重性代码描述项目文件行抑制状态错误 BC30518重载解析失败,因为无法访问“新” 使用以下参数调用:'Public Overloads Sub New(start As ThreadStart)':方法'Public Sub frame_buffer_write_Thread(ByRef enna_frame_buffer为 Embedded_Communication_Interface.Antenna_Frame_Buffer_structure)' 没有与委托'Delegate Sub兼容的签名 ThreadStart()'。 '公共重载子新建(开始为 ParameterizedThreadStart)':方法'Public Sub frame_buffer_write_Thread(ByRef Antenna_frame_buffer为 Embedded_Communication_Interface.Antenna_Frame_Buffer_structure)' 没有与委托'Delegate Sub兼容的签名 ParameterizedThreadStart(obj As Object)'。 SYS HUB和HW GUI C:\ PRIMARY \ WORK \ SYSTEM HUB \ SOURCE \ Embedded_Communication_Interface.vb 1030有效