13得票2回答
在后台工作程序调用之间,线程本地存储是否持久化?

后台工作线程会被重复使用吗? 具体来说,如果我在后台工作器的DoWork()方法中设置了命名数据槽(线程本地存储),那么该数据槽的值是否会保留,可能会在以后的某个时间被其他线程找到? 我原本不这么认为,但我遇到了这个bug... 编辑:这篇博客文章表明BackGroundWorker利用...

12得票3回答
如何在C#后台工作器进度更改事件中发送更多参数

我知道如何将一个变量(progresspercentage)传递给"progresschanged"函数,就像这样。backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_Pr...

12得票5回答
为什么BackgroundWorker总是忙碌?

我在我的WPF应用程序的后台工作器中意识到了一些奇怪的事情。 我现在想要完成的目标是等待BW结束后再开始另一个线程。 请检查以下代码:if (bw.IsBusy) { bw.CancelAsync(); System.Threading.ThreadStart WaitT...

12得票1回答
如何判断StreamWriter是否已关闭?

我正在使用一个与后台工作器结合使用的Streamwriter,用于记录日志。 因此,我有System::Void MyUI::execBWorker_DoWork(System::Object^ sender, System::ComponentModel::DoWorkEventArgs...

12得票3回答
BackgroundWorker完成事件处理程序在哪个线程上运行?

我有一个GUI应用程序需要运行长时间的计算(大约一分钟或更长时间),它通过将计算交给后台工作器来处理。 (这部分没问题) 我的问题是,如果我做以下操作: this.backgroundWorker.RunWorkerCompleted += new System.ComponentModel...

12得票3回答
Hangfire在SQL Server中引起了锁定问题

我们在使用ASP.NET Web项目和SQL Server 2016期间,使用Hangfire 1.7.2。我们的服务器上有大约150个站点,每个站点都使用Hangfire 1.7.2。当我们升级这些网站以使用Hangfire时,DB服务器崩溃了。检查DB日志,我们发现存在多个锁定查询。我们已...

11得票5回答
取消后台任务

当我的C#应用程序关闭时,有时会被卡在清理例程中。具体来说,一个后台工作程序没有关闭。这大致是我尝试关闭它的方式: private void App_FormClosing(object sender, FormClosingEventArgs e) { ba...

11得票4回答
C#后台工作者如何报告字符串?

我如何从BackgroundWorker返回一个字符串(例如“正在搜索文件……”、“找到选择……”)和进度百分比到我的Windows Form?此外,我有一个包含我想要在BackgroundWorker_Work中运行的方法的大类。我可以通过Class_method()调用它,但是我无法从被调...

11得票8回答
如何在后台线程中创建WPF控件?

我有一个方法可以创建后台线程来执行某些操作。在这个后台线程中,我创建了一个对象。但是当运行时创建此对象时,会给我一个异常:   调用线程必须是STA,因为许多UI组件需要这样做。 我知道我必须使用Dispatcher将一些内容反映到UI上。但在这种情况下,我只是创建了一个对象,并没有与...

11得票3回答
BackgroundWorker和计时器,如何读取日志文件中的新行?

我的应用程序编写了一个日志文件(目前使用 log4net)。我想设置一个定时器和一个后台工作程序来读取日志文件,并将其内容打印到表单中的某个控件中,这样就可以在写入时进行操作。 由于 FileSystemWatcher 类似乎存在问题:有时事件“更改”会触发,有时不会。并且它的轮询速率非常低...