我已经使用网络浏览器控件在win-form弹出窗口中显示HTML文本:
webBrowserCharges.DocumentText ="HTML string";
但是,第一次打开时,它花费了太多时间。当我再次单击时,它将快速显示数据。
在winform中,我编写了以下代码以获取数据并在Web浏览器控件中显示
DataSet DsPaymentReceipt;
DsPaymentReceipt = _wbSrv.GetTESTDATA("TEST DATA", FromDt, ToDt);
if (DsPaymentReceipt != null && DsPaymentReceipt.Tables.Count > 0 && DsPaymentReceipt.Tables[0].Rows.Count > 0)
{
webBrowserCharges.DocumentText = Convert.ToString(DsPaymentReceipt.Tables[0].Rows[0]["StrXml"]);
}
但是上面的代码并不需要花费时间来获取或分配数据集值。
为什么第一次需要时间,我不知道。
答案 0 :(得分:0)
我认为您只需要Ngen您的exe
public static void NgenApplication()
{
if (!ApplicationDeployment.IsNetworkDeployed || !ApplicationDeployment.CurrentDeployment.IsFirstRun) return;
string appPath = Application.StartupPath;
string winPath = Environment.GetEnvironmentVariable("WINDIR");
using (var proc = new Process())
{
Directory.SetCurrentDirectory(appPath);
proc.EnableRaisingEvents = false;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = $@"{winPath}\Microsoft.NET\Framework\v2.0.50727\ngen.exe";
proc.StartInfo.Arguments = $"uninstall {Application.ProductName} /nologo /silent";
proc.Start();
proc.WaitForExit();
proc.StartInfo.FileName = $@"{winPath}\Microsoft.NET\Framework\v2.0.50727\ngen.exe";
proc.StartInfo.Arguments = $"install {Application.ProductName} /nologo /silent";
proc.Start();
proc.WaitForExit();
}
}