Tag: backgroundworker

C#窗口在后台工作者上形成一个具有function的进度条

我试图添加一个进度条(MARQUEE风格)在我的c#excel添加英寸进度条出现,但它并没有表明任何进展,直到function完成执行,这意味着它仍然冻结。 这些是Windows窗体类中的函数: public void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { for (int i = 0; i < 100; i++) { Thread.Sleep(100); //run in back thread backgroundWorker1.ReportProgress(i); } } //call back method public void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { progressBar1.Value = e.ProgressPercentage; } //call back method public void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { progressBar1.Value = progressBar1.Maximum; } […]

C#BackgroundWorker线程通过服务器发送消息写入Excel 2007

我希望对以下devise有一些看法: 我有一个服务器,不断发送消息,我写了一个C#程序集订阅。 目前,每当有消息发送时,我会将其asynchronous写入ms Excel 2007.由于这是一个资源繁重的过程,我使用了后台工作线程来处理与服务器的连接,并在写入excel之前接收消息。 public static void bw_DoWork(object sender, DoWorkEventArgs e) { //This method will establish conn to server, and subscribe to the messages sent asynchrously. //After which, createSpreadsheet(String msg) will be called to write the message to excel runMsgServerConsumer(); } 问:这是一个很好的devise吗? 或者,我已经让主线程build立conn到服务器,并让backgroundworker线程通过createSpreadsheet(String msg)处理写入excel。

使用BackgroundWorker将使Excel进程在closuresExcel后运行

我正在使用C#中的Excel加载项,在运行模拟时显示进度条。 我想要一个BackgroundWorkerasynchronous运行模拟,并报告进度条窗体的进度。 模拟方法需要对当前Excel COM应用程序的引用。 我有一个名为ThisAddin的类,它实现了ExcelDna.Integration.IExcelAddIn接口,并有一个返回应用程序的静态属性。 但是,只要后台工作人员以任何方式尝试使用该应用程序,即使退出Excel,也将使Excel进程继续运行。 例如,如果我简单地在Excel应用程序中设置属性,如下所示: void backgroundworker_DoWork(object sender, DoWorkEventArgs e) { ThisAddIn.App.DisplayStatusBar = true; } 然后,在运行加载和closures的Excel后,我仍然有一个Excel进程在我的任务pipe理器中运行。 有没有办法确保这个过程被杀死? 我不知何故在后台工作人员创build应用程序的另一个实例吗? 我不明白,因为如果我从后台工作人员的应用程序调用quit(),它将closures整个应用程序,该过程仍将继续运行! 当后台工作完成时,我已经确定调用dispose()并中止当前线程。 我已经使用了这里build议的“AbortableBackgroundWorker”类。 但是,这仍然不能解决我的问题。

.NET COM程序集通过BackgroundWorker与Excel进行交互

我正在写一个VB.NET 3.5中的实验程序集,并通过COM公开,然后从一些Excel VBA代码调用来启动一个类的实例,该类捕获一些Excel事件,然后执行一些functionExcel中的活动工作簿。 要启动该类,从VBA传递对Excel应用程序的引用(我在程序集中使用PIA for Excel)。 我需要从我的程序集中对活动工作簿执行耗时的操作,所以我决定在WinForm中使用BackgroundWorker ,这样我可以在后台操作完成时显示操作的进度对话框。 我想知道是否有任何问题与COM交互使用COM这样的背景工作者通过COM? 提出问题的原因是程序集中的主类保留对Excel应用程序对象的引用,然后将其传递给BackgroundWorker以便它可以确定活动工作簿,然后对其执行一些操作。 我只通过一个过程访问工作簿本身(而不是其他对象)。 由于某种原因,我的脑海里,Excel可能不会这样 – 我说得对吗?

在写入多个Excel工作表时,不要multithreading的原因

我正在研究一些我replace的开发人员编写的代码。 他写了一段冗长的代码,写在同一个excel文件上的多个excel工作表中。 我正在考虑使用几个后台工作来加快写入四个Excel工作表的过程。 会有一个原因,把这一切留在一条线上是一个好主意吗? 我之前使用过multithreading,但在c#中没有写入excel。 我无法find任何文件。 这是代码 xlWorkSheet = xlWorkBook.Worksheets.get_Item(1); // work order xlWorkSheet.Cells[4, 4] = nld.s_WorkOrderNumber; // technician xlWorkSheet.Cells[6, 4] = nld.s_TechnicianName; // date and time xlWorkSheet.Cells[4, 10] = (string)DateTime.Now.ToShortDateString(); xlWorkSheet.Cells[6, 10] = (string)DateTime.Now.ToShortTimeString(); row = 30; col = 1; // left connectors and part number conCount = nld.n_LeftConnCount; for (i = 0; i […]