出现崩溃可能是由于查询数据的线程中抛出了未处理的异常,导致整个应用程序崩溃。为了解决这个问题,您可以在查询数据的线程中添加try-catch语句来捕获异常,并将异常信息记录下来。
例如:
```
frmCash cash = new frmCash("系统通知", "明细数据加载中...");
System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(() =>
{
try
{
//查询数据
dtDetail = BALProvider.BizFunctions.Material_Circulate_In.Cls_Functions.Instance.GetWHSummarySource_Detail(strNO);
this.Dispatcher.Invoke(() =>
{
cash.Close();
//整理数据并更改binding对象值
ObservableCollection list = BALProvider.BizFunctions.Material_Circulate_In.Cls_Functions.Instance.SetList_WHSummary_Detail(dtDetail);
List_WHSummary_Detail.Clear();
foreach (ClsWHSummary_Detail temp in list)
{
List_WHSummary_Detail.Add(temp);
}
});
}
catch (Exception ex)
{
//记录异常信息
Console.WriteLine(ex.Message);
}
}));
thread.Start();
cash.ShowDialog();
```
在捕获到异常时,您可以根据具体情况进行处理,例如显示错误提示框或者记录日志等。