【发布时间】:2011-06-13 08:37:40
【问题描述】:
我有一个异步调用的测试 Web 服务。我很惊讶它似乎工作正常,即使有一个(非惰性)单例,其中 get 方法没有锁。
例如,我的 Web 服务有一个单例,它有一个调用先前设置的工厂的 Get 方法(没有锁),工厂然后从预设的详细对象实例化一个新对象并返回新对象。
所以代码将如下进行:
MethodCalledFromSingleton{
Instantiate Obj A
Use stored object to set properties of Obj A
Instantiate Object B
Assign Object B to a property of Object A
Return Object A
}
在显式多线程环境中,一个线程可以实例化对象,然后在它返回之前,另一个线程可以实例化另一个对象,然后两者都返回。两个线程不能都指向同一个引用吗?
但是,正如我所说,我没有遇到任何问题,所以与显式线程化代码相比,异步 Web 服务调用在概念上是否以不同的方式工作?
【问题讨论】:
标签: multithreading web-services asynchronous .net-2.0