Visual Basic.net在单独的进程上执行sub

时间:2015-10-21 14:30:54

标签: vb.net process multiprocessing

我有以下问题:我使用VB.net程序以编程方式创建一些PDF文件。问题是在打印到pdf例程时某处存在错误,并且在程序结束时PDF文件未正确关闭。我相信我尽我所能来关闭它,所以我想到了一个解决方法。 (为了清晰起见编辑:我尝试使用不同的库和工具打印到PDF,如Adobe,CutePDF等,每次文件保持打开状态,这看起来像是vb.net处理此任务时的错误..)

有没有办法在单独的进程上启动打印子,类似于我使用BackgroundWorker所能做的事情,这样当我完成它时,我可以杀死该进程并释放文件?我无法杀死创建文件的主进程,因为它是我的主应用程序,我需要打开它。我必须能够对同一个PDF文件进行多次打印,所以我需要以编程方式在一个打印件和另一个打印件之间删除它,如果它被主进程锁定,我就无法做到。

我尝试使用谷歌搜索但我无法找到一种方法在单独的进程上轻松执行子进程,我真的想避免创建一个ad-hoc dll并在一个单独的进程上运行它,如果我可以。

感谢您的任何意见!

1 个答案:

答案 0 :(得分:1)

要在单独的进程中运行代码,您需要在单独的可执行文件中运行它。

您可以拆分代码并从执行打印的部分创建新的exe。

然后您可以从主应用程序运行它,如下所示:

Process.Start("C:\Path\Printing.exe")

但是,听起来你想在一个单独的线程中运行代码。为此,您可以使用Background Worker或创建Thread对象并直接调用方法:

Dim thr As new Thread(Sub() Printing)
thr.Start