首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

多线程lock有关问题

2012-06-17 
多线程lock问题本人对多线程不太熟悉,有了解的朋友麻烦解答一下。Google了一下,很多说得不明不白...代码如

多线程lock问题
本人对多线程不太熟悉,有了解的朋友麻烦解答一下。Google了一下,很多说得不明不白...
代码如下:

C# code
pubic class A{    public void Helper()    {        B b = new B();        b.Do();    }}public class B{    public void Do    {        lock(new A())        {              星矢.天马流星拳();        }    }}


class A中的Helper方法会被多线程调用,但我想当星矢在发天马流星拳的时候,其他线程过来请求他发天马流星拳的时候,如果他已经发了,就不用再发。
我现在遇到的问题是每个线程的请求过来都会让星矢发天马流星拳....请问怎么写代码才能达到我的要求。
非常感谢!

[解决办法]
lock(new A()) 没用,每次都作用在一个新实例上。你把 new A() 改为 typeof(A) 或者是一个 static 变量上。

热点排行