可以Application.DoEvents()在C#中使用吗?
这个函数是否能够让GUI跟上应用程序的其余部分,就像VB6 DoEvents一样?
任务并行库是否有任何可以被认为是对BackgroundWorker类的替换或改进?
我有一个带有向导式UI的WinForms应用程序,它执行一些长时间运行的任务.我希望能够使用标准进度条和取消操作的响应式UI.我之前用BackgroundWorker做过这个,但是我想知道是否有一些可以使用的TPL模式?
是的是的.我知道它们是两种完全不同的技术.我最近使用C#和Windows Forms从Web开发转移到FAT开发.我一直认为使用ajaxStart和ajaxStop显示微调器非常容易,因此用户知道正在发生的事情并继续等待.
对于可以全局实现的C#Windows窗体,是否有一种等效的简单技术?例如,如果我正在查询数据库并等待一些结果,通常程序会在几秒钟内无响应,然后在"处理"后再次开始工作.是否有一些全局方式我可以显示一个微调器,而我的程序是"处理"而不是识别程序中可能导致它无响应并且只是剥离新线程的所有可能点?
如果我不清楚,请告诉我.
我的应用程序中有一系列标签 -
Label[] labels = new Label[8];
Run Code Online (Sandbox Code Playgroud)
我想按顺序改变循环中那些的背景颜色 -
private void btnPrepare_Click(object sender, EventArgs e)
{
Application.DoEvents();
for (int i = 0; i < 8; i++)
{
labels[i].BackColor = System.Drawing.Color.Red;
System.Threading.Thread.Sleep(2000);
}
}
Run Code Online (Sandbox Code Playgroud)
但所有变化都是一起出现的,而不是顺序出现的.
有帮助吗?