如何执行长时间运行?

时间:2016-05-23 18:21:33

标签: c# winforms

我是否有任何资源可以获取有关如何通过长时间运行来制作winForm的提示?

我的情况是这样的。我有一个调用API的WinForm,并将数据存储到具有多列和大约10,000多行的datagridview中。

我正在运行多个操作,例如计算不同列中值的不同实例,并运行数学运算符来获取值。该应用程序运行大约2000行,但是当我到达4000时,我得到COM错误或其他东西阻止它执行。

我不在乎我是否可以访问用户界面,我只需要运行该应用程序。

1 个答案:

答案 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