VB.NET:在其他子程序的循环期间如何维护主窗体控制?

Zed机

我有一个只有一种形式的程序。通过按下按钮,将启动ffmpeg转换。

在主要形式的文本框中,输出ffmpeg统计信息。这可以通过从ffmpeg获取StandardError输出来实现。

Public Sub Console()
        Dim Process As New Process 

        Process.StartInfo.UseShellExecute = False
        Process.StartInfo.RedirectStandardError = True
        Process.StartInfo.RedirectStandardOutput = True 
        Process.StartInfo.FileName = current_ffmpeg_path 
        Process.StartInfo.Arguments = input_params 
        Process.StartInfo.CreateNoWindow = True 
        Process.Start() 

        Dim ffmpeg_stats_output As System.IO.StreamReader = Process.StandardError

        Do While Process.HasExited = False
        [update all main form textboxes by taking input string from ffmpeg and elaborate it]
        Loop
End Sub

问题在于,执行此循环时,将更新文本框和进度条,但不能修改主窗体。实际上,用户根本没有控制权。因此,如果我要创建一个按钮以停止/暂停ffmpeg的主要形式,则不能像其他任何形式按下该形式。

有没有一种方法可以维护其他Sub内部的循环而又不会在运行时随意控制主窗体?

我试图通过调用另一个带有文本框和进度条的对话框来修复它。但是,即使这种形式也无法完全控制,直到过程完成为止。

要将暂停/停止转换发送到ffmpeg(无需窗口运行)是否正确使用:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
SendKeys.Send("q")
SendKeys.Send("^s") 
End Sub

还是必须指定将此密钥发送给当前正在运行的进程?

Zed机

解决了主窗口无控制的问题...

只需使用BackgroundWorker。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在VB.NET中将表单保持在其他表单之上?

来自分类Dev

如何在VB.NET中将表单保留在其他表单之上?

来自分类Dev

如何在VB.Net(Windows窗体)应用程序中实现MVC类型(全局)控制器?

来自分类Dev

VB.Net + WebService:主窗体在加载时无响应

来自分类Dev

VB.NET用户控件删除主窗体控件

来自分类Dev

VB.NET和VB之间的区别

来自分类Dev

VB 2010 .NET ComboBox 如何控制对象?

来自分类Dev

vb.net XML For循环

来自分类Dev

调用循环VB.Net

来自分类Dev

调用循环VB.Net

来自分类Dev

VB.NET HTML循环

来自分类Dev

VB NET,累积损坏

来自分类Dev

VB Net IsDBNull问题

来自分类Dev

Vb.net-FolderBrowserDialog

来自分类Dev

VB.NET FolderBrowserDialog

来自分类Dev

Vb.Net-UpdateDriverForPlugAndPlayDevices

来自分类Dev

Vb.net-FolderBrowserDialog

来自分类Dev

VB.NET VbNewLine

来自分类Dev

VB.NET与多态

来自分类Dev

如何延迟VB脚本?

来自分类Dev

vb.net 窗体“刽子手”

来自分类Dev

在VB.net中启动程序时如何更改打开的窗体

来自分类Dev

如何在Windows窗体应用程序(VB.NET)中使用UdpClient.BeginReceive

来自分类Dev

如何从vb.net Windows窗体应用程序访问远程SQL Server数据库

来自分类Dev

从主窗体继承图标到vb.net中的子窗体

来自分类Dev

如何通过vb.net使其他应用程序(计算器)在Winforms中崭露头角?

来自分类Dev

VB.Net上的其他行为很奇怪

来自分类Dev

自动在vb.net中单击其他形式的按钮

来自分类Dev

VB.NET - 导航而不加载其他表单