管托是什么

来源:互联网 发布:淘宝上的棉被 编辑:程序博客网 时间:2024/04/30 06:38

这些都是.NET中CLR的概念,和C#没多大关系。
使用基于CLR的语言编译器开发的代码称为托管代码。
托管堆是CLR中自动内存管理的基础。初始化新进程时,运行时会为进程保留一个连续的地址空间区域。这个保留的地址空间被称为托管堆。托管堆维护着一个指针,用它指向将在堆中分配的下一个对象的地址。最初,该指针设置为指向托管堆的基址。

比如说吧,我正做的一个程序,监听我机器上一个端口的Socket通讯,收到信息后更新界面的Treeview,因为监听线程属于主线程的子线程,无法更新主线程的资源,只好委托给另一个线程去做。
private delegate void delChangeUserTree(object Sender,SealedSocket.SealedSocket.ReceiveArgs e,bool isPlus);

private void changeUserTree(object Sender, SealedSocket.SealedSocket.ReceiveArgs e,bool isPlus)
{
string userID=TransfersControl.BytesToStructTF(e.bytes).strValues[0];
string email=TransfersControl.BytesToStructTF(e.bytes).strValues[1];
string question=TransfersControl.BytesToStructTF(e.bytes).strValues[2];
//从用户列表TreeView中删除一个用户
for(int i=0;i<this.userTitleNode.Nodes.Count;i++)
{
if(this.userTitleNode.Nodes[i].Text==userID)
{
this.userTitleNode.Nodes[i].Nodes.Clear();
this.userTitleNode.Nodes.Remove(this.userTitleNode.Nodes[i]);
break;
}

}
}
调用的时候
delChangeUserTree myDelegate=new delChangeUserTree(this.changeUserTree);
object[] paramater=new object[2]; //给委托添加参数
this.invoke(myDelegate,paramater); //执行委托