另一个值得了解的属性是HttpContext类的静态Current属性。该属性始终指向正在服务的请求的HttpContext类的当前实例。如果您正在编写将用于页面或其他管道类并且可能需要访问上下文以进行任何原因的辅助类,则这可能很方便。通过使用静态Current属性来检索上下文,您可以避免将引用传递给辅助类。例如, 列表4-1中显示的类使用上下文的Current属性来访问QueryString并将某些内容打印到当前响应缓冲区。请注意,为了正确初始化此静态属性,调用者必须在原始请求线程上执行,因此,如果您已经生成了其他线程来执行请求期间的工作,则必须自行提供对上下文类的访问。
我想知道加粗部分的根本原因,一件事情导致另一件事情,以下是我的想法:
我们知道一个进程可以拥有多个线程。每个线程都有自己的堆栈。这些线程还可以访问共享内存区域——堆。
那么,据我理解,堆栈是存储该线程所有上下文信息的地方。要使线程访问堆中的东西,它必须使用指针,而指针存储在其堆栈上。
因此,当我们进行一些跨线程调用时,必须确保所有必要的上下文信息从调用线程的堆栈传递到被调用方线程的堆栈。
但我不太确定我是否犯了任何错误。
欢迎您提出任何建议。
谢谢。
补充说明:
这里的堆栈是限于用户堆栈。