vb.net 线程托管 窗口假死 因为代码的执行速度N快 你又用If Me.RichTextBox1.InvokeRequired Then所以 这边在执行 那边也执行 导致冲突(貌似是这样的意思 我也说不清楚)可以用委托去完成操作 保证不假死我刚好之前有个实验实例 你可以看看Imports System.ThreadingPublic Class Form1Delegate Sub dg(ByVal textt As String)Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.ClickDim t1 As New Thread(New ThreadStart(AddressOf ds1))t1.Start()Dim t2 As New Thread(New ThreadStart(AddressOf ds2))t2.Start()End SubSub ds1()For i As Integer=0 To 3000Me.BeginInvoke(New EventHandler(AddressOf ds11),i)Thread.Sleep(30)Application.DoEvents()NextEnd SubSub ds11(ByVal sender As System.Object,ByVal e As System.EventArgs)ListBox1.Items.Add(sender.ToString&Chr(6)&TextBox1.Text)End SubSub ds2()For i As Integer=0 To 3000Me.BeginInvoke(New EventHandler(AddressOf ds22),i)Thread.Sleep(30)Application.DoEvents()NextEnd SubSub ds22(ByVal sender As System.Object,ByVal e As System。.VB中的托管是什么意思? managed code就是例如 你开辟了一段空间,你不用写代码去回收空间,不用担心内存泄露,这些都被framework做了。实际上就是简化了你的编程,你可以把心思都放在算法和逻辑上面vb.net的托管 跨线程操作控件需要走Invoke()方法。C#可以用Invoke+MethodInvoker+Lambda表达式来简单完成。vb就不知道怎么写了托管代码与非托管代码的区别 1简单的说,就是代码被编译成MSIL后在.net的Framework下运行,同操作系统底层的交互都交给framework去做。所谓非托管代码就是脱离了Framework的管制,直接同底层API打交道,自己管理自己的内存和安全机制等东西。而托管代码就不管这些,全都由Framework去完成2“程序”一般都是在对操作系统进行直接或者间接的操作“托管程序”是需要通过访问公共语言运行时(cls)才能访问操作系统的程序而“非托管程序”不用通过访问公共语言运行时(cls)可以直接访问操作系统的程序3vb.net,C#等写的程序是托管程序,VC+可以写托管程序,如果用到了内存管理,则只能编译为非托管程序这些东西MSDN上都写得很清楚的,如果真想深入了解的话LZ可以看看CLR via C#、.net框架设计、Effective C#之类的书籍用vb.net怎么实现非托管dll文件的按钮的调用,怎么声明,程序写在程序什么位置,希望说清,不胜 (\"user32.dll\",SetLastError:=True)>;_Private Shared Function GetFocus()As IntPtr' 照着这个写吧,用VB6的声明也是能兼容的End Function像普通的函数一样放在类里,别忘了 Imports System.Runtime.InteropServicesvb.net 关闭窗口 内存不能释放 1.如果你释放的是托管托管代码的内存,那么托管代码的内存管理是自动的,.NET可以保证我们的托管程序在结束时全部释放。2.如果是非托管资源时.NET就不能自动管理了,下面是释放非托管资源内存方法当我们利用如数据库、文件等非托管资源时,就要用到.NET Framework中的标准:IDisposable接口。按照标准,所有有需要手动释放非托管资源的类都得实现此接口。这个接口只有一个方法,Dispose(),不过有相对的 Guidelines指示如何实现此接口,在这里我向大家说一说。实现IDisposable这个接口的类需要有这样的结构:[Visual Basic]Public Class BaseImplements IDisposablePublic Overloads Sub Dispose()Implements IDisposable.DisposeMe.Dispose(True)GC.SuppressFinalize(Me)End SubProtected Overloads Overridable Sub Dispose(ByVal disposing As Boolean)If disposing Then' 托管类End If' 非托管资源释放End SubProtected Overrides Sub Finalize()Me.Dispose(False)MyBase.Finalize()End SubEnd ClassPublic Class DeriveInherits BaseProtected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)If disposing Then' 托管类。什么是托管 托管是.NET的一个专门概念,它倡导一种新的编程理念,因此我们完全可以把“托管”视为“.NET”。由托管概念所引发的C++应用程序包括托管代码、托管数据和托管类三个组成部分:(1)托管代码:.Net环境提供了许多核心的运行(RUNTIME)服务,比如异常处理和安全策略。为了能使用这些服务,必须要给运行环境提供一些信息代码(元数据),这种代码就是托管代码。所有的C#、VB.NET、JScript.NET默认时都是托管的,但Visual C++默认时不是托管的,必须在编译器中使用命令行选项(/CLR)才能产生托管代码。(2)托管数据:与托管代码密切相关的是托管数据。托管数据是由公共语言运行的垃圾回收器进行分配和释放的数据。默认情况下,C#、Visual Basic 和 JScript.NET 数据是托管数据。不过,通过使用特殊的关键字,C# 数据可以被标记为非托管数据。Visual C++数据在默认情况下是非托管数据,即使在使用/CLR 开关时也不是托管的。(3)托管类:尽管Visual C++数据在默认情况下是非托管数据,但是在使用C++的托管扩展时,可以使用“_gc”关键字将类标记为托管类。就像该名称所显示的那样,它表示类实例的内存由垃圾回收器管理。另外,一个托管类也完全可以成为.NET 框架的成员,由此可以。
随机阅读
- 赵柯脚 《撒野》是一部怎样的小说?
- 学战都市小说资源 需要轻小说……
- 大话战国怎么修改帮贡 大话战国
- 成都市轻纺批发市场地址 急求成都最大糖果批发市场,很多批发市场都搬迁了!求最新、最大、最全的糖果批发市场!
- 全新途胜音效设置 全新途胜原厂音响 对比JBL入门级音响那个好?有改装必要吗?
- 汇丰银行中国大陆哪些地方有? 汇丰零售银行面经
- 佳贝艾特金装和可瑞康对比 佳贝艾特和可瑞康区别在哪?哪个更适合宝宝呢
- 到达青岛汉庭快捷酒店(极地海洋世界店)最快的公交路线 汉庭青岛二中店预定
- 求盖棺论定和盖棺定论的意思,多谢~! 盖棺论定 是盖棺定论
- 杞菊地黄丸浓缩丸是什么 杞菊地黄丸大蜜丸好还是浓缩丸好
- 七八十年代的中专相当于现在的什么学历水平? 八十年代上海市领导
- 日本动漫 十月番 对魔导学园35试验小队 下面那个截图是哪一集。 对魔导试验35小队 动漫
- 扶她水专精武器 生存专精的猎人不但用近战武器代替远程武器
- 髌骨高位滑膜炎 左膝髌骨软化还是滑膜炎,三个半月没法出门了
- 汕尾凤山妈祖到保利金町湾 刘藏元观音画成交价格
- “独学而无友,则孤陋而寡闻.”的上一句是什么 独学而无友 则孤陋又寡闻
- 还没结婚,烦呀该怎么办 还没结婚就已经烦了怎么办
- 碧欧泉活泉润漾水份露和润透水分露有啥区别 碧欧泉润透和润漾的区别
- 股票K线图中的紫色线和黄色线和绿色线是什么意思啊 股票跌幅栏为绿色是什么意思
- 莫名其妙 莫名其妙网