C#无法退出线程。

时间:2017-07-21 00:18:36

标签: c# .net multithreading

新线程及其概念。我有以下代码,我在控制台应用程序中使用Windows.Forms来打印网页。

我的代码如下所示:

我的应用程序会打印页面,但它从不存在。它停留在Application.Run();

如何退出应用程序? 谢谢你的帮助。

(如果我使用Application.DoEvents(); wb.print();不打印。)

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace WebBrowserWithoutAForm
{
    class Program
    {
        private static bool completed = false;
        private static WebBrowser wb;
        [STAThread]
        static void Main(string[] args)
        {
            wb = new WebBrowser();
            wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
            wb.Navigate("http://www.google.com");

            while (!completed)
            {
                //Application.DoEvents();
                Application.Run();
            }
            Console.Write("\n\nDone with it!\n\n");
            Console.ReadLine();
        }
        static void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            Console.WriteLine(wb.Document.Body.InnerHtml);
            wb.Print();
            completed = true;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

Application.Run的MSDN说:

  

在基于Win32或Windows窗体的应用程序中,消息循环是一个   用于处理用户事件的代码中的例程,例如鼠标点击和   键盘笔画。每个运行的基于Windows的应用程序都需要   活动消息循环,称为主消息循环。当主   消息循环关闭,应用程序退出。在Windows窗体中,这个   调用Exit方法时,或者当调用时,循环关闭   在运行main的线程上调用ExitThread方法   消息循环。

此处讨论的退出方法是Application.Exit

相关问题