2.在Win95或WinNT下,即使应用程序的其他部分为16位部件,跨进程的部件也可以是32位的执行程序。
3.远程部件可使用网络上其他机器的资源。
另外,部件可被单独调试并可在其他应用程序里重用。在确定如何使用分段技术来优化应用程序之前,必须估计到能创建的部件类型和怎样适合应用程序。使用VB专业版和企业版,能创建以下三类部件:
1.跨进程部件
2.进程内部件
3.远程部件
三种类型并不互相排斥,可以在一个应用程序里同时使用这三类部件,但从优化应用程序的观点看,它们又各有极不相同的特性。
一、跨进程部件是一个可执行程序,它可向其他程序提供服务,像其它的可执行程序一样,启动后,在自己的进程空间有自己的堆栈。因此,当客户使用应用程序提供的对象时,操作将从客户的进程空间转到部件的进程空间。
与其他类型相比,跨进程部件提供了一些很有价值的特点:
1.异步操作(“线程”)。
2.部件不能捕获的错误不会导致调用应用程序崩溃。
3.可在16位和32位应用程序之间相互操作。
从优化观点看,第一点和第三点最有意义。因为跨进程部件是一个分离的程序,可以与作为客户端的部件异步操作。它有一个单独的“线程”,与客户程序构成多任务(从技术角度上讲,这不是线程,而是一个分离的进程;但从概念上看,二者等价)。两个程序可相互通讯并共享对象。在应用程序执行一些费时的操作时,异步操作就特别有用。客户可先调用部件执行该项操作,而后继续响应用户。
即使惯用的16位应用程序或部件在32位系统上运行,也可以不必立即将它们改为32位。若使用跨进程部件将应用程序分段时,则可将16位和32位部件混合在一起并互相协调。这有助于充分利用32位部件特性,并保护在16位部件上的投资。
考虑它们所有的能力,跨进程部件都有一个明显的缺点:性能。以下几点可显现这些不足:
1.启动速度慢
2.跨进程调用的开销大
跨进程部件是一个由VB创建的执行程序,因此,与应用程序的启动相关的问题也同样存在。当从另一个VB程序中调用在VB中写的跨进程部件时,几乎所有的支持DLL已经被加载,这就大大缩短了启动部件的时间。许多部件比VB应用程序的平均规模还小,它们具有很少或根本没有要加载的窗体,这又进一步缩短了加载时间。然而,跨进程部件启动还是要比进程内部件慢。