434得票15回答
由于不同的线程拥有该对象,因此调用线程无法访问该对象。

我的代码如下:public CountryStandards() { InitializeComponent(); try { FillPageControls(); } catch (Exception ex) { ...

192得票4回答
如何使用WPF后台工作器

我的应用需要执行一系列初始化步骤,这些步骤需要7-8秒钟的时间完成,期间我的用户界面会变得无响应。为了解决这个问题,我在一个单独的线程中执行初始化:public void Initialization() { Thread initThread = new Thread(new Thr...

190得票5回答
异步/等待与后台工作者的区别

在过去的几天中,我测试了.net 4.5和c# 5的新功能。 我喜欢它的新async/await特性。之前我使用BackgroundWorker在后台处理长时间的进程,并保持UI响应。 我的问题是:有了这些很好的新特性后,何时应该使用async/await,何时应该使用Background...

182得票12回答
BackgroundWorker vs 后台线程

我有一个关于在Windows窗体应用程序中选择后台线程实现的格式问题。目前,我在一个窗体上有一个BackgroundWorker,它具有一个无限的(while(true))循环。在这个循环中,我使用WaitHandle.WaitAny来使线程处于休眠状态,直到发生感兴趣的事件。其中一个我等待的...

168得票8回答
向后台工作程序发送参数?

假设我想向后台工作者发送一个整数类型的参数,应该如何实现?private void worker_DoWork(object sender, DoWorkEventArgs e) { } 我知道这个是worker.RunWorkerAsync();,但我不理解如何在worker_DoWork...

127得票18回答
如何等待BackgroundWorker取消?

考虑一个对象的假设方法,它可以为您完成一些工作: public class DoesStuff { BackgroundWorker _worker = new BackgroundWorker(); ... public void CancelDoingStuf...

84得票2回答
任务并行库替代BackgroundWorker?

任务并行库中是否有任何可替代或改进BackgroundWorker类的内容? 我有一个带向导式UI的WinForms应用程序,它执行一些长时间运行的任务。我想要一个可以响应的UI,具有标准进度条和取消操作的能力。我以前使用过BackgroundWorker来实现这一点,但我想知道是否有一些可...

82得票3回答
如何使用BackgroundWorker?

我知道它有3种方法。在我的程序中,我有一个发送消息的方法。这个程序经常迟到,有时按下按钮后根本没有发送消息。有时比我预期的晚5秒,程序会冻结。我想使用BackgroundWorker来按预期发送消息,并允许程序始终正常运行。我之前的代码是在按钮处理程序中发送消息。现在我应该把这个相同的代码放在...

78得票8回答
如何正确停止BackgroundWorker

我有一个表单,其中包含2个组合框。我想根据combobox1.Text和combobox2.Text填充combobox2.DataSource(假设用户已经完成在combobox1中的输入,并正在输入combobox2)。因此,我为combobox2编写了一个事件处理程序:private v...

76得票5回答
BackgroundWorker中未处理的异常

我有一个小型的WinForms应用程序,利用BackgroundWorker对象执行长时间运行的操作。 后台操作偶尔会抛出异常,通常是因为某人打开了正在被重新创建的文件。 无论代码是从IDE中运行还是不运行,.NET都会弹出错误对话框,通知用户发生了未处理的异常。使用Release配置编译...