我正在探索在控制台应用程序中使用WebBrowser.Print方法打印网页的选项。 我确实希望PrintDialog出现。我使用过WebBrowser Control in a new thread的代码 它确实给了我一个很好的起点。
我的代码看起来:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Windows.Forms;
namespace STAThreadConsoleApp
{
class Program
{
static void Main(string[] args)
{
Uri url = new Uri("http://www.google.com");
runBrowserThread(url);
}
static void runBrowserThread(Uri url)
{
var th = new Thread(() => {
var br = new WebBrowser();
br.DocumentCompleted += browser_DocumentCompleted;
br.Navigate(url);
Application.Run();
});
th.SetApartmentState(ApartmentState.STA);
th.Start();
}
static void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var br = sender as WebBrowser;
if (br.Url == e.Url)
{
Console.WriteLine("Natigated to {0}", e.Url);
br.ShowPrintDialog();
Application.ExitThread(); // Stops the thread
}
}
}
}
我不会在browser_DocumentCompleted方法中弹出“Application.ExitThread();
”。当我发表评论时,我会弹出,但线程不存在,我的控制台应用程序继续运行。如何退出我的申请?有什么指针吗?谢谢大家!
答案 0 :(得分:1)