如何声明这样的结构?public struct TS
{
public string T;
public TS2[] Arr;
}public struct TS2
{
public string M;
public int[] Arr;
public byte[] Data;
}我想发送TS这样的结构,如何实现?注意,数组个数是不定的,但可以有限制.
{
public string T;
public TS2[] Arr;
}public struct TS2
{
public string M;
public int[] Arr;
public byte[] Data;
}我想发送TS这样的结构,如何实现?注意,数组个数是不定的,但可以有限制.
不在同一个进程,你的结构也传不过去(进程隔离的原因)。想传少量数据给另外进程,你可以看看WM_COPYDATA消息,这个消息有特殊处理。
或者你有其它方案提议一下吗?
1、在UI线程中创建COM对象。
2、在第二个线程创建之后(运行之前),设定它的AppartmentState为STA:
thread.SetApartmentState(ApartmentState.STA);
3、这样第二线程对COM对象的操作,将被Marshal到UI线程中。
如果是C++的话,我就不用在C#里面发问了......
我的程序是由Socket异步接收到消息后触发的.郁闷的说
Control.Invoke的内部实现是先把委托放在一个链表中,并调用PostMessage通知Control所在的UI线程,
由UI线程取出委托并予执行。当然你也可以保存一个UI线程的SynchronizationContex,并调用SynchronizationContex.Send来达到同样的目的。