Tag: 暂停

暂停下载线程

我在c#中编写了一个非常简单的批量下载程序,它读取要下载的URL的.txt文件。 我已经设置了一个全局线程和委托来更新GUI,按下“开始”按钮创建并启动该线程。 我想要做的是有一个“暂停”按钮,让我暂停下载,直到我点击“恢复”按钮。 我该怎么做呢? 相关代码: private Thread thr; private delegate void UpdateProgressCallback(int curFile); private void Begin_btn_Click(object sender, EventArgs e) { thr = new Thread(Download); thr.Start(); } private void Pause_btn_Click(object sender, EventArgs e) { Pause_btn.Visible = false; Resume_btn.Visible = true; //{PAUSE THREAD thr} } private void Resume_btn_Click(object sender, Eventargs e) { Pause_btn.Visible = true; Resume_btn.Visible = […]

为什么添加SuspendLayout和ResumeLayout会降低性能?

我需要向父控件添加很多控件。 但我发现如果在将这些控件添加到父级之前和之后添加ParentControl.SuspendLayout和ParentControl.ResumeLayout ,我会使用秒表来测量滴答:如果我删除代码ParentControl.SuspendLayout和ParentControl.ResumeLayout ,它会更快。 为什么会这样? 所以SuspendLayout和ResumeLayout不应该减少添加子控件的时间,对吗? 那么使用SuspendLayout和ResumeLayout什么好处,换句话说,如果我不使用SuspendLayout和ResumeLayout但是直接将子控件添加到父母,那有什么不好?

如何暂停/暂停一个线程然后继续它?

我在C#中创建一个应用程序,它使用winform作为GUI和一个在后台运行的独立线程自动更改东西。 例如: public void Run() { while(true) { printMessageOnGui(“Hey”); Thread.Sleep(2000); // Do more work } } 如何让它在循环中的任何位置暂停,因为循环的一次迭代大约需要30秒。 所以我不想在完成一个循环之后暂停它,我想按时暂停它。