这是我的设置,这段代码可以正常工作
private void butGo_Click(object sender, EventArgs e)
{
threadCreateImages.RunWorkerAsync();
}
private void threadCreateImages_DoWork(object sender, DoWorkEventArgs e)
{
PatientToHL7MSHManager tvPatientToHL7MSHManager = new PatientToHL7MSHManager();
tvPatientToHL7MSHManager.LoadByMSHID("");
}
private void threadCreateImages_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("DONE");
}
如果我更改此行 tvPatientToHL7MSHManager.LoadByMSHID(""); 到 tvPatientToHL7MSHManager.LoadByPatientID("");
它跳过 DoWork 事件并直接进入 RunWorkerCompleted 事件。
LoadByMSHID 和 LoadByPatientID 之间的唯一区别是 SQL 语句上的过滤器,除了代码路径相同。
代码在没有后台线程的情况下可以正常工作。
任何想法或建议将不胜感激。