gpt4 book ai didi

c# - 创建 SynchronizationContext 时的异常做法?

转载 作者:行者123 更新时间:2023-11-30 20:13:18 26 4
gpt4 key购买 nike

我正在创建 SynchronizationContext 的 STA 版本以用于 Windows Workflow 4.0。我想知道在发布回调时如何处理异常。

SynchronizationContext 可用于Send(同步执行)或Post(异步执行)SendOrPostCallback .尽管在这两种情况下我都在 STA 线程上调用委托(delegate),但很容易知道如何在同步执行时处理异常。我阻塞调用线程,在我的工作线程上调用回调,记录任何异常,取消阻塞调用线程,并在调用线程上抛出任何记录的异常。

我应该在异步 Post 上做什么不太清楚。没有将该异常从执行线程传输回调用线程的机制; 发布 是 100% 的即兴即忘。 SendOrPostCallback 中没有EndInvoke()WaitHandle。抛出的任何异常都将导致应用程序被拆除。

我别无选择,只能让 Post 中抛出的异常破坏我的应用程序吗?这似乎是框架中 SynchronizationContexts 的默认行为(谢谢 Reflector)。我似乎无法弄清楚这是为什么。难道不应该有一些方法来防止异步帖子变得繁荣吗?

最佳答案

在这种情况下,我让替代原则来指导我。我将实现与 SynchronizationContext 的现有实例相同的行为。否则会违反替代原则,并且可能会以意想不到的方式反过来咬你一口。

关于c# - 创建 SynchronizationContext 时的异常做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1701482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com