我已经建立了一个流程来创建新任务来处理文件处理。在我收到未处理的异常错误并单击继续按钮时出现问题,主进程继续运行。现在我还发现在子任务中我遇到了文件冲突错误,并且由于任务作为单独的 .exe 运行,我的印象是一切都是线程安全的。所以这里的第一个问题是在主流程中创建任务。GProcess 是一个完整的项目,由 6 个类组成。这是作为类库引用添加到主流程类form1
Public Class Form1
..Private parser as GProcess.module = new GProcess.module()
dim factory as new taskfactory
factory.startnew(address of parser.main)
try
task.waitall()
catch ae as aggregateexception
for each ex in ae.innerexceptions
logs.insert(ex.message.tostring)
next
finally
parser.ctsources.cancel()
end try
现在我从 msdn 得到了聚合异常的东西,不知道如何实现它,但基本上我想要的是取消导致异常的任务并继续运行所有其他任务并捕获被取消任务正在处理的文件并保存名称到我的日志,或者如果可能的话,用它正在处理的文件重新启动该任务..
现在对于第二个问题,当任务访问一个类时,我创建了一个 xmlwriter,该任务应该创建它自己的实例,所以不确定为什么会发生冲突,但如果确实发生了,任务/线程是取消还是取消它等待访问文件。
....
public class filecleaner
private xmlfile as string = directoryPath & filename
private xwriter as xmltextwriter = new xmltextwriter(xmlfile,nothing)
....