新线程及其概念。我有以下代码,我在控制台应用程序中使用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;
}
}
}
答案 0 :(得分:1)
Application.Run的MSDN说:
在基于Win32或Windows窗体的应用程序中,消息循环是一个 用于处理用户事件的代码中的例程,例如鼠标点击和 键盘笔画。每个运行的基于Windows的应用程序都需要 活动消息循环,称为主消息循环。当主 消息循环关闭,应用程序退出。在Windows窗体中,这个 调用
Exit
方法时,或者当调用时,循环关闭 在运行main的线程上调用ExitThread
方法 消息循环。
此处讨论的退出方法是Application.Exit
。