【发布时间】:2015-02-03 20:15:54
【问题描述】:
我开发了一个 Windows 服务。在服务中,我使用 BackgroundWorker 在我的数据库中发布数据。 我在我的数据库构造函数类中声明了一个 BackgroundWorker,并在需要时使用它。 在测试过程中,我遇到了一个错误:
此 BackgroundWorker 当前正忙,无法运行多个任务 同时
我试图找出解决方案,许多人建议为每个任务使用新实例。我改变了我的代码:
...
using (BackgroundWorker bw = new BackgroundWorker())
{
bw.DoWork += new DoWorkEventHandler(bkDoPost);
bw.RunWorkerAsync(dbobj);
}
...
而我的“bkDoPost”是:
void bkDoPost(object sender, DoWorkEventArgs e)
{
try
{
dbObject dbj = e.Argument as dbObject;
this.db.Insert(dbj.tableName, dbj.data);
}
catch (Exception ex)
{
logs.logMessage("There was an error in data post. See the ErrorLog");
logs.logError(ex);
}
}
代码在测试过程中运行良好。
我的问题是我的方法正确吗?
或者这样做有什么问题吗?
谢谢
【问题讨论】:
标签: c# windows-services backgroundworker