我是否有任何资源可以获取有关如何通过长时间运行来制作winForm的提示?
我的情况是这样的。我有一个调用API的WinForm,并将数据存储到具有多列和大约10,000多行的datagridview中。
我正在运行多个操作,例如计算不同列中值的不同实例,并运行数学运算符来获取值。该应用程序运行大约2000行,但是当我到达4000时,我得到COM错误或其他东西阻止它执行。
我不在乎我是否可以访问用户界面,我只需要运行该应用程序。
答案 0 :(得分:2)
我是否有任何资源可以获取有关如何通过长时间运行来制作winForm的提示?
当然,这类事情有很多资源。您很可能正在寻找BackgroundWorker
。它上面有一个很棒的“代码项目”here。
public partial class Form1 : Form
{
BackgroundWorker backgroundWorker;
public Form1()
{
InitializeComponent();
backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += OnDoWork;
}
void OnDoWork(object sender, DoWorkEventArgs e)
{
// Long running code here.
}
}
BackgroundWorker
支持取消,甚至报告进度。此外,您还需要实施其他几项关键事件。
理想情况下,在使用表单完成表单时,您将清理和处理对象 - 另外,请确保在清理过程中取消事件处理程序。这是另一个resource。