我面临一个严重的问题,即将一条记录中的数据复制到另一条记录(Overlay)。我正在使用MQ请求使用我的C#代码与大型机系统进行通信。我们面临的问题非常随机/罕见,向主机发送更新请求,以获取该线程先前处理的另一条记录的一个记录副本信息。我正在使用下面的代码后台工作者方法在我的服务器上创建多线程。
我的问题是:一个工人创建的对象可以被另一个工作使用吗?那可能吗 ?这可能是叠加数据的原因之一。
请帮助你的建议!!
BackgroundWorker worker;
worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(DoWork);
worker.ProgressChanged += new ProgressChangedEventHandler(ProgressChanged);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(RunWorkerCompleted);
worker.WorkerReportsProgress = true;
worker.RunWorkerAsync();
答案 0 :(得分:0)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
backgroundWorker1.RunWorkerAsync();
}
struct SOmeData { }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
SOmeData data = new SOmeData();
// backgroundWorker1 result
e.Result = data;
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// backgroundWorker1 result
SOmeData data = (SOmeData)e.Result;
// start backgroundWorker2
backgroundWorker2.RunWorkerAsync(data);
}
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
{
// backgroundWorker1 result
SOmeData data = (SOmeData)e.Argument;
}
}