应用程序域和线程
来自 MSDN 的引用: http://msdn.microsoft.com/en-us /library/6kac2kdh.aspx
一个或多个托管线程 (代表为 System.Threading.Thread)可以运行在 一份或任意数量的申请 同一管理域内 过程。 虽然每个申请 域以单个开始 线程,该应用程序中的代码 域可以创建额外的 应用领域和附加 线程。 结果是,管理 线可以在之间自由移动 同一应用程序域内 托管流程; 你可能只有 一根线在多根线之间移动 应用领域。
我尝试编写具有共享一个线程的 2 个应用程序域的代码。 但我放弃了。 我真的不知道这怎么可能。 你能给我一个代码示例吗?
A quote from MSDN: http://msdn.microsoft.com/en-us/library/6kac2kdh.aspx
One or more managed threads
(represented by
System.Threading.Thread) can run in
one or any number of application
domains within the same managed
process. Although each application
domain is started with a single
thread, code in that application
domain can create additional
application domains and additional
threads. The result is that a managed
thread can move freely between
application domains inside the same
managed process; you might have only
one thread moving among several
application domains.
I tried to write code with 2 application domains that share one thread. But i gave up. I have really no idea how this is possible. Could you give me a code sample for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这可以通过简单地在单独的 AppDomain 中创建一个 MarshalByRef 对象,然后调用该对象上的方法来完成。
以下面的类定义为例。
然后,您可以使用此定义来调用与当前 AppDomain 不同的单独 AppDomain。 当调用写入控制台时,您将在 2 个 AppDomain 中拥有 1 个线程(位于调用堆栈中的 2 个不同点)。 这是示例代码。
This can be done by simply creating an object which is MarshalByRef in a separate AppDomain and then calling a method on that object.
Take for example the following class definition.
You can then use this definition to call into a separate AppDomain from the current one. At the point the call writes to the Console you will have 1 thread in 2 AppDomains (at 2 different points in the call stack). Here is the sample code for that.
调用另一个应用程序域的对象上的方法。
Call a method on an object of the other app domain.