首先,我要说的是,很难详细解释我的问题,但我会尽力。我将更新详细的解释或我使用的可能导致异常的更多代码。如果我的代码很混乱,我很抱歉。
我读过很多同名的问题,但我一点运气都没有。我对线程/任务/调度程序了解甚少,所以如果您发现我的代码有问题,请指导我。
简介
我的应用程序每n分钟通过计时器执行一次后台任务。
后台任务:从API获取数据,然后生成Window元素作为包含数据的表单,然后打印它们。
问题:目前该异常已发生两次,导致无法生成两个表单文档,因此无法打印它们。
获得的详细异常TaskScheduler.UnobservedTaskException是:
通过等待任务或访问其 Exception 属性都没有观察到任务的异常。结果,未观察到的异常被终结器线程重新抛出。
System.Collections.ObjectModel.ReadOnlyCollection`1[System.Exception]
这是我的一段代码,可能对您查找问题根源有用:
public void BackgroundTask(object sender, EventArgs e)
{
Application.Current.Dispatcher.Invoke(
new Action(GetInvoiceData),
DispatcherPriority.Background,
null
);
}
Run Code Online (Sandbox Code Playgroud)
...哪里GetInvoiceData:
public async void GetInvoiceData()
{
try
{
JsonData = await ApiHelperInstance.Post(ApiParam);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (!string.IsNullOrEmpty(JsonData))
{
var apiReturn = new ApiReturn();
try
{
apiReturn = JsonConvert.DeserializeObject<ApiReturn>(JsonData);
}
catch (JsonException ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (apiReturn.Result != …Run Code Online (Sandbox Code Playgroud)