我正在尝试运行将持续大量时间的异步输出,然后在执行期间关闭应用程序,这将导致文本框被丢弃。我以为可以通过简单地返回try-catch语句来解决此问题,但是VS仍然说存在“未处理”异常。这是代码:
public void AppendOutput(string text)
{
var timeNow = DateTime.Now;
if ((DateTime.Now - previousTime).Milliseconds <= 50) return;
try
{
synchronizationContext.Post(new SendOrPostCallback(o =>
{
Output.AppendText((string)o);
}), text);
}
catch(ObjectDisposedException e)
{
return;
}
previousTime = timeNow;
}
我有理由将其视为未处理?我以为那就是try-catch的目的。我的理解是,我可以简单地返回,因为对于试图写入已处理的文本框的程序,无需处理异常。程序应自行结束线程。 解决此问题的正确方法是什么?