我知道这个问题已经被问过了,至少有here个.
但是没有一个令人满意的答案,至少对我来说不是.关于与非托管代码的互操作,有很多关于编组的讨论,但是如何从一个线程编组到另一个线程,就像我们在.NET中有时必须做的那样.
这让我不禁要问,到底什么是编组?当您给出编组的定义时,您将如何定义它,以便解释互操作性的情况,以及在线程之间"编组"的情况?
我知道这个问题已经被问过了,至少有here个.
但是没有一个令人满意的答案,至少对我来说不是.关于与非托管代码的互操作,有很多关于编组的讨论,但是如何从一个线程编组到另一个线程,就像我们在.NET中有时必须做的那样.
这让我不禁要问,到底什么是编组?当您给出编组的定义时,您将如何定义它,以便解释互操作性的情况,以及在线程之间"编组"的情况?
计算通常需要将数据从一个站点移动到另一个站点,并且没有任何共享内存.因此,一个计算向另一个计算发送包含数据的消息.
如果数据任意复杂,该如何在消息中发送?
编组是将数据字段或一整套相关 struct 转换为可在消息中发送的序列化字符串的过程.马歇尔二进制
当然,如果你"整理"数据,你必须最终"整理",这是读取串行流和重建传输数据( struct )的过程.
库中通常有(取消)编组 routine 用于实现此目的,有时甚至有工具可以生成(取消)编组 routine 上发送/接收数据所需的所有调用.