大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
不可以,但是能够在主线程的基础上调用委托(Invoke)。(主线程会被占用)
站在用户的角度思考问题,与客户深入沟通,找到鹰手营子网站设计与鹰手营子网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站建设、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广、空间域名、网页空间、企业邮箱。业务覆盖鹰手营子地区。
例子:
Dim thr As Threading.Thread
Public Delegate Sub VoidDelegate()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
thr = New Threading.Thread(AddressOf Where)
thr.Start()
End Sub
Public Sub Where()
Me.BeginInvoke(New VoidDelegate(AddressOf WhereThr))
End Sub
Public Sub WhereThr()
Me.TextBox.text="0123456789"
End Sub
(Invoke)这种情况下,主线程被占用,所有由主线程执行程序,都将被(wherethr函数执行结束)后执行。
这是典型对.net构架不理解造成的!
只要是.net编程,一定使用的是.net类库,必须是同运行版本的.net支持方可运行。而所谓的vb.net只是说编程的语言层使用的是vb语言而已。该语言在.net构架下被编译成为IL语言(MSIL,严格说来是IL的一个子集)。而上层的语言只是产生软件时所使用的一个不同语言规则而已,与IL已经没有任何相关性了。上层语言无论是C#还是VB,甚至是Java(J#)均只适应编程人员的一个策略,与整个构造没有多大的相关性。
.net的最终目的就是让不同的语言编程人员能协同工作,那么语言在其中的区别没有多大了,所有的运行核心都是由.net完成的,没有必须依赖于.net。这是没有任何疑问的。
vb.net就是.net,只是表示用VB语言人的称呼,用C#的则称其为C#.net,但不管是哪种,它是无法脱离.net的。
使用 NET Framework Microsoft Visual Basic开发人员可以创建健壮的 在先前的Visual Basic版本中很难编写的应用程序 本文将讨论使用 NET Framework的好处 并且将包括一些功能强大的 Visual Basic开发人员可以与该框架一起使用的特性 包括多线程和线程池(thread pooling) Windows服务和文件系统监控等 为什么使用框架 单词框架(framework)有几种含意 在这种情况中 它指的是创建和运行应用程序的基础 拥有这样的基础使得创建应用程序变得更容易 而同时使用了一个一致的 简化的程序设计模型 作为一个Visual Basic 开发人员 你对于这种程序设计语言感觉很满意 它使得创建各种应用程序变得很容易 Visual Basic语言本身提供了固有的数据类型 如 Integer Long和String 以及一些最常用的函数 如字符串处理和数据类型转换等 当你的应用程序变得更复杂时 你可以使用Win API来完成标准的Visual Basic函数所不能实现的功能 如获取任意的注册键和数值 在许多情况中 你还可以使用(Component Object Model 组件对象模型)组件库来扩展应用程序的功能 最明显的例子是ADO(ActiveX Data Objects)库 你的应用程序可以使用它来进行数据访问 虽然Visual Basic足够灵活 可以提供这些不同的可扩展性机制 但这种灵活性仍然需要你学习几种复杂的API体系结构 你需要了解Win 如何工作 以及如何在Visual Basic中调用它们 这可能会是一个既费时又容易出错的任务 你还需要了解如何在Visual Basic中使用各种组件 每个组件都有一个不同的对象模型 最后 当你使用Win API ADO 也可能使用许多其他组件 创建自己的Visual Basic应用程序时 你需要管理这些应用程序的部署以及它们的相关性 一个典型的Visual Basic应用程序的相关性列表所包括的远远多于Visual Basic运行时(runtime);它必须包括应用程序使用的所有对象库 如ADO 公共框架背后的想法是解决这些问题 并使得用户创建健壮的应用程序变得更容易 而无需学习多种不同的API体系结构 并且无需部署和处理多种对象库的版本问题 什么是 NET Framework 术语 NET Framework指的是构成Microsoft NET平台开发基础的一组技术 这一组中的关键技术是运行时(runtime)和类库 运行时负责管理代码 在执行时向它提供服务 这与Visual Basic 运行时的作用类似 NET程序设计语言 包括Visual Basic NET Microsoft Visual C# C++管理的扩展 以及多种来自不同开发商的程序设计语言 通过一组公共的统一类来利用各种服务和特性 NET统一类提供了创建应用程序的基础 而不管你使用何种语言 无论你只是简单地连接一个字符串 还是创建一个Windows服务或多层的基于网络的应用程序 你都要用到这些统一类 统一类为访问平台的功能性提供了一种一致的方法 一旦你学会了使用类库 你就会发现所有任务都遵循同一个一致的体系结构 要编写自己的应用程序 你无需学习和掌握不同的API体系结构 由于 NET Framework 部署Visual Basic NET应用程序变得更容易了 与Visual Basic 应用程序不同 你无需配置各种相关性 如单独的数据访问库 XML语法分析器和网络API 因为所有这些功能都是 NET Framework的组成部分 通过在统一的 集成的框架上创建自己的应用程序 你可以实现学习这种框架所花费时间的最大回报 并且你将拥有更多容易部署和使用的健壮的应用程序 NET Framework与Visual Basic NET Visual Basic 运行时在简化许多公共的程序设计任务方面非常重要 但是简化这一层意味着 在拥有Visual Basic可以使用的打包程序之前 你不能使用新的操作系统特性 如DirectX 作为一个Visual Basic开发人员 你从 NET Framework获得的最重要的益处是 可以使用一致的程序设计模型既直接又容易地访问 NET平台 这意味着 你可以使用Visual Basic NET创建很难或不可能使用Visual Basic 创建的应用程序 作为一个Visual Basic 开发人员 现在你将对能够使用与其他平台语言相同的特性和功能而赞赏不已 例如 为了创建Windows服务 你无须再用Microsoft Visual C++来编写它 你也无须求助于黑客或组装机 你可以优雅 干净 容易地使用Visual Basic NET完成这项工作 为了给你一些使用 NET Framwork的例子 我们将讨论在你的应用程序中可能需要执行的 个常见任务 跟踪与事件记录 多线程 文件系统监控和创建Windows服务 跟踪与事件记录 当创建一个健壮的应用程序的时候 你必须密切注意诊断和故障排除机制 代表性地 这包括编写处理打开输出目标(事件记录或文件)的跟踪组件 编写跟踪消息和关闭输出目标 然后通过自己的代码调用关于这个组件的方法 将文本传递给记录 你将所有的时间和精力花在了创建跟踪和记录子系统上 这最终并不会对解决商务问题有所贡献 但这是创建应用程序所必需的 NET Framework包括类和其他数据类型 通过向你提供记录基础设施 使得记录跟踪消息变得很容易 图 给出了用于跟踪的 NET Framework类 类是System Diagnostics名称空间的一部分 Trace类提供了几个共享的方法 例如 Write方法允许你记录特定消息 而Assert方法允许你在特定的条件为假的情况下记录一条消息 Trace类将消息输出到Listeners集合中的对象 这个集合中的每个对象都属于继承自TraceListener的一个类 EventLogTraceListener 将消息写入事件记录 而TextWriterTraceListener则是将消息写入到一个文本文件中 默认情况下 DefaultTraceListener的一个实例被添加到Trace类的Listeners集合中 除了标准的监听程序以外 你可以实施自己跟踪监听程序 例如 你希望接收来自在防火墙后面的远程机器上运行的应用程序的跟踪输出 你可以编写一个跟踪监听程序 通过HTTP全球向你的服务器发送跟踪消息 这将会影响你的应用程序的性能 但只会在启用跟踪时才会对性能有所影响 代表性地 你需要有能力在编译的二进制文件中包括或去除跟踪代码 为了在Visual Basic 中做到这一点 你需要使用编译常量 并在#If语句中包含所有的跟踪代码 这使得代码很难理解和维护 利用 NET Framework 你只需在项目属性(Project Properties)对话框中将TRACE编译常量设为on或off状态 你无需在#If语句中包括跟踪代码 另一个普遍期望的跟踪特性是跟踪水平设置 这包括不同的跟踪设置 例如 Severe(严重) Error(错误) Warning(警告)和Information(信息) 这些设置对记录哪些信息进行控制 你可以使用跟踪组件启动时所读取的注册表数值对此进行控制 对于 NET Framework 这是完全内置的功能 你可以设置一个注册表数值来控制你当前的应用程序的记录水平 比如 只有在跟踪水平被设置为Severe(严重)的情况下 才使用Trace WriteIf和Trace WriteLineIf来记录消息 集成的跟踪和记录特性极大地增强了生产力 因为你只需使用内置的特性 将精力集中在编 *** 正的应用程序代码上
多线程应用程序 NET Framework的一个很重要的特性是 可以在不使用第三方工具或不支持的Visual Basic技巧情况下 使用Visual Basic创建多线程应用程序 NET Framework的多线程支持是由System Threading名称空间中的类和接口提供的 因此所有的 NET语言都能够以相同的方式创建和处理线程 System Threading Thread是一个核心类 提供了对创建和控制线程的支持 要创建一个线程 你可以创建一个新的System Threading Thread对象 将构造函数传递给ThreadStart代理 这个代理提供了这个线程开始执行的方法 当你准备启动这个新的线程时 可以调用Thread Start() (请参阅清单 ) 当你开始创建多线程应用程序时 你很快就会认识到需要控制对共享资源的访问 如共享的类变量 NET Framework还包括几个类和数据类型 你可以使用它们对两个线程执行的动作进行同步 在最简单的情况中 你由一个需要从不同的线程中进行更新的共享变量 要这样做 你可以使用System Threading Interlocked类 例如 你可以通过编写Interlocked Increment(num)或Interlocked Decrement(num)分别使名为num的共享变量递增或递减 你还可以使用Interlocked将变量设为某一特定值 或检查两个变量是否相等 除了这种简单情况以外 你可以使用 NET Framework类来执行更复杂的线程同步 如事件和互斥体的同步 所有都来自于 NET Framework内部 而无须使用Win API Imports System IO注释 The namespace System Threading注释 contains the Thread classImports System ThreadingModule Module Private count As LongSub Main()注释 Create the ThreadStart delegateDim tStart As ThreadStart = New _ ThreadStart(AddressOf StartCounting)注释 Create the threadDim t As Thread = New Thread(tStart)Console WriteLine( Enter q to quit )t Start() 注释 start the threadWhile (Console Read() asc( q ))注释 repeat the loop until the user enters qEnd Whilet Stop() 注释 tell thread to stop processingt Join() 注释 wait until the thread finishesEnd SubSub StartCounting()Do注释 use Interlocked Increment in case 注释 another thread is accessing the same variableInterlocked Increment(count)Console WriteLine( _ After incrementing count is : count)Thread Sleep( )LoopEnd SubEnd Module 清单 使用Visual Basic NET创建线程 你创建了一个新线程 将它传递给一个ThreadStart代理 然后调用Thread Start()启动这个线程 你可以通过调用Thread Stop()来中止这个线程 然后调用Thread Join()等待它完成关闭操作 一个线程可以使用System Threading Interlocked来使变量递增或递减 此外 NET Framework提供了一个方便的机制来对工作排队 并将起分配给线程池中的某个线程 在处理多个并发工作项目或工作请求的服务器应用程序中 这非常有用 例如 对于等待输入文件 然后将它们导入到数据库中去的应用程序 可能会对每个输入文件进行排队 以在线程池中的某个单独的线程上进行处理 System Threading ThreadPool类允许你使用共享的QueueUserWorkItem方法对工作进行排队 以前要这样做 你必须得创建和管理自己的线程池 你又需要在基础设施工作而不是在解决商务问题上花大量的时间和精力 文件系统监控 我曾经遇到过一些应用程序 需要等待和处理某个特定目录中的文件 例如 将数据从文件导入到数据库中去的应用程序 数据文件可以从某个大型机上下载 或者被转移到某个输入目录中 该应用程序将它们导入到数据库中 你不用经常地轮询该目录检查是否有新文件 可以等待生成新文件的通知 你可以在Visual Basic 中使用Win API来做到这一点 而在Visual Basic NET中你可以使用 NET Framework类来做这项工作 但是在 NET中实施文件监控与在 NET中完成其他工作的方法更加一致 因此学习曲线是最小的 你可以使用System IO FileSystemWatcher NET类对文件系统进行监视 它提供了一些属性 允许你设置监控的路径 指定是对文件还是子目录层次的变化感兴趣 System IO FileSystemWatcher还允许你指定需要监控的文件名和文件类型(例如 * xml是指监控所有XML文件的变化) 最后 你可以指定感兴趣的变化类型 例如 只对新建文件 文件属性的变化或文件大小的变化(请参阅清单 )感兴趣 在你设置了监控内容后 你需要钩住用于感兴趣的各种事件的事件处理程序 FileSystemWatcher事件有Changed Created Deleted Error和Renamed 要处理某个事件 首先你需要编写一个与FileSystemEventHandler代理相同声明的事件处理程序 然后将这个处理程序添加到FileSystemWatcher类中 这个基于代理的体系结构允许你为同一个事件添加多个处理程序 或者对于多个事件使用同一个处理程序 而你不能使用Visual Basic 做到这一点 注释 System IO contains the 注释 file monitoring classes and typesImports System IOModule Module Sub Main() 注释 FileSystemWatcher does the real work Dim fw As New FileSystemWatcher() 注释 WaitForChangedResult is what you 注释 get back when a change occurs Dim result As WaitForChangedResult 注释 set the path to monitor fw Path = C:WINNT 注释 tell it whether to watch files or directories fw Target = WatcherTarget File 注释 tell it whether to include subdirs fw IncludeSubdirectories = False 注释 hook up handlers AddHandler fw Created New FileSystemEventHandler(AddressOf OnFileNotify) 注释 enable the watcher fw Enabled = True DoConsole WriteLine( Beginning to monitor ) 注释 this is where we actually wait注释 waiting blocks execution for the specified timeoutresult = fw WaitForChanged(WatcherChangeTypes All )Console WriteLine( Hit Enter to continue q to quit ) Loop While (Console ReadLine q )End Sub注释 This is the delegate that gets 注释 called when a file is created Public Sub OnFileNotify(ByVal source As Object ByVal e As FileSystemEventArgs)Console WriteLine( Notification received for file change type is _e FullPath e ChangeType) End SubEnd Module 清单 使用FileSystemWatcher监控某个文件夹是否有新文件
lishixinzhi/Article/program/net/201311/11618
你要对什么控件达到什么样的控制???
通常要在Form1控制Form2的控件,应该在控件名之前写上窗体名,例如:
在Form1里要控制Form2的控件,可以;
Form2.控件名.属性(或者方法)等。
C#.net优点:
运算符重载。不安全代码(指针和固定内存区)、 无符号整数、移位运算。
VB的优点:
即时编译、静态事件绑定、条件异常捕获、COM兼容类、宽松的类型检查和变量声明、Visual Basic Runtime库、可选参数、带参数属性、模块等语言特征、动态数组。
通过VB.NET开发好的程序绝对没有问题(包括Direct X游戏开发)。虽然VB.NET的资料少,但是只要C#支持的VB.NET都支持(大体上这样,因为都要经过MSIL中间环节。除了指针之类的VB.NET不支持C#支持,但是没有多大实际用处)。
vb.net的资料以英文资料居多(只有英文资料才有看头,中国的没有什么好资料),得看看英文水平过不过关。还有VB.NET的ide也比C#的IDE好得多,代码看得也舒服。(C#的大括号{}太烦人)。
至于VB6对C的帮助,只是理解上会容易一些,其它用处不大。有VB6的基础学VBNET会方便一些,但是并不是会VB6就会VB.NET,它们差别也不小。
扩展资料:
NET、C#和ASP.NET之间的区别 :
1、NET是一个平台,一个抽象的平台的概念。
NET 平台其本身实现的方式其实还是库,抽象层面上来看是一个平台。
基本可以理解的NET核心就是NETFramwork。
NETFramework包括两个关键组成元素:
a. CommonLanguageRuntime,公共语言运行时(CLR0)-提供内在管理,代码安全性检测等功能。
b. NETFrameworkClassLibrary,.NET 框架类库(FLC)-提供大量应用类库,提高开发效率。
学习NET Framework 是所有.NET开发人员都必须的,否则开发NET程序永远都是停留在‘外功’的招式,NETramework 是NET开发高手的‘内功’修行之一。
2、C#是一个程序设计语言,仅仅是一个语言。
程序设计语言仅仅是为了方便开发人员和计算机沟通的工具,虽然 C#语法相对 C 和 C+要多一些,但是相对来看 C#语法都比较固定,这样使用起来却都很容易。我认可一位朋友说的,C#的语法更严谨!
这里回过来看看NET和C#的关系,不得不提的是NET程序的执行过程。
C#符合NETCLR 中的公共语言运行规范。CLS:commonlanguagespecification,当然所有的NET Language 都是符合这个规范的例如:VB.NET、XAML 和 C++/CL等等。
C#需要符合NETCLS,是因为NETCLR和JAVA虚拟机类似,有一个中间语言共机器来执行。所有不同语言的.NET代码在执行前会被编译成同样的中间语言(MSIL),所以所有NET 支持语言都必须符合符合CLS 规范。
P.S:如果做.NET3.0XAML开发的朋友,可以尝试下ildasm.exe看看XAML的应用程序,会发现原来 XAML其实很简单。
3、ASP.NET是一个网站开发的技术,仅仅是.NET框架中的一个应用模型。
用微软公司ASP.NET快速入门中的一句话来解释,ASP.NET是用于生成基于Web的应用程序的内容丰富的编程框架。
ASP.net 和C#的区别:
编写asp.net通常包括两部分的代码:网页层和后台处理层,网页就是用标记语言来写的,而网页对应的后台处理程序则需要.net语言来完成,目前主要是采用c#和vb.net。
可以说整个的asp.net网站通过c#或者vb.net来实现。而c#则是ms .netframework的主要语言,可以用在网站,桌面应用等方面。可以算是一种比较流行的编程语言。