0

コンソール アプリケーション:

    Dim myno As Integer = 1010
    Console.WriteLine(Convert.ToString(myno))
    Dim sw As New StreamWriter("filename.txt", True)
    sw.Write(Convert.ToString(myno))
    sw.Flush()
    sw.Close()
    Console.ReadLine()

Windows アプリケーション:

    Dim mm As New System.Diagnostics.Process
    Dim info As New System.Diagnostics.ProcessStartInfo(Application.StartupPath & "\ConsoleApplication1.exe")
    mm.StartInfo = info
    mm.Start()
    Dim f As New FileInfo(Application.StartupPath & "\filename.txt")
    Dim s As StreamReader = f.OpenText
    TextBox1.Text = s.ReadToEnd
    If Not String.IsNullOrEmpty(TextBox1.Text) Then
        mm.Kill()
    End If

ただし、コンソール アプリはテキスト ファイルに書き込みません。Windows アプリは起動しますが、閉じません。

4

1 に答える 1

0

コンソールアプリケーションがファイルへの書き込みを終了するまで待つのではなく、すぐにファイルから読み取ろうとしています。コンソールアプリケーションを制御できる場合は、最後のアプリケーションを削除して、ReadLine完了すると自動的に閉じるようにします。次に、ファイルから読み取る前に、プロセスが終了するのを待つことができます。ただし、コンソールアプリケーションに変更を加えることができない場合は、ファイルが変更されるのを監視したり、指定された期間待機して待機時間を期待したりするなど、より「ハッキー」なことを行う必要があります。十分な長さです。

于 2012-06-29T13:15:44.287 に答える