0

这个问题是针对 .NET Framework 4

是否有人知道在给定实例方法进行任何阻塞线程的调用时强制编译器生成错误的方法。我正在编写一段代码,并且想要一种机械方式来确保执行链中的任何内容都不会阻塞线程。

我一直在尝试找到可以添加到方法声明中的属性,但找不到任何东西。

当我使用块这个词时,我并不是指任何可能挂起的代码。具体来说,一些 Microsoft api 调用,如 SMTP.Send() 和 NetworkStream.Read() 将停止执行,直到达到特定事件。

4

2 回答 2

1

Joshua 很抱歉,但我认为您不了解阻塞呼叫的概念...查看所有呼叫都是阻塞的,唯一的区别是某些阻塞比其他阻塞持续时间更长!当“长阻塞”部分发生在不同的线程中时,我们通常说调用是“非阻塞调用”...

更直接的答案是:不,编译器不知道调用会导致阻塞,所以他无法弄清楚!

于 2012-12-05T15:10:17.760 回答
1

使用 FxCop SDK 编写您自己的代码分析规则,将消息级别设置为错误,这样每当违反规则时就会显示为“编译错误”,请查看此博客以获取更多信息自定义代码分析规则

于 2012-12-05T15:12:12.173 回答