我必须缺少明显的东西,但是我根本不明白为什么Windows Forms Application中的主表单需要20秒才能显示出来。我的程序尝试采用在控制台应用程序示例中找到的TPL代码示例,并以Windows窗体/ GUI进行工作。我知道任务排队需要20秒才能完成,但是那段代码发生得太快以至于表单没有时间完成初始化吗?我尝试在“ InitializeComponent();”之后放置一个延迟。希望它能给表格带来时间;并且还尝试在其后仅放置一个消息框,但在我插入的延迟后仍会得到相同的延迟。没有form_load方法,因此没有要检查的地方。
“”“命名空间TPLwinform{公共局部类Form1:表单{
public Form1()
{
InitializeComponent();
// Time the test(s)
Stopwatch stoppwatch = new Stopwatch();
stoppwatch.Start();
Console.SetOut(new ControlWriter(tb1)); // just redirects console.writeline to the form's textbox "tb1"
// #################################### job queue ########################################
var q = new TPLDataflowMultipleHandlers(); //
var numbers = Enumerable.Range(1, 10);
foreach (var num in numbers)
{
F1TimeDelay(2);
q.Enqueue(num.ToString());
}
// Stop the timer and return the elapsed number of milliseconds.
stoppwatch.Stop();
Console.WriteLine("XXXXXXXXXX <STATUS> Elapsed time = {0} minutes. XXXXXXXXXX", (int)stoppwatch.Elapsed.TotalMinutes);
}
“”“
顺便说一句,当表单最终显示出来时,文本框充满了我希望从启动的线程中看到的消息(线程ID等信息)。>>
我必须缺少明显的东西,但是我根本不明白为什么Windows Forms Application中的主表单需要20秒才能显示出来。我的程序正在尝试获取TPL代码...
由于在Constructor和FormShown事件之间的某个位置,您正在调用需要20秒钟以上才能完成的代码。