日期:2014-05-17  浏览次数:21068 次

当主线程去访问一个静态类的方法,而刚好这个方法是要从网络上取得返回值的,这时会报错。那这个静态类方法里面应该如何来写呢?万分感谢
比如我有类

public static NetHelper
{
    public static getVersion()
    {
        int version = getNetVersion();//这里从网络上取得网上的版本
    }
}

上面的类在线程中调用是没有问题的,但在主线程调用就会出错
那在不更改主线程业务的情况下,
如何修改这个GetVersion方法,那他可以在主线程,也可以在子线程中调用呢?

万分感谢

------解决方案--------------------
先说清楚报什么错
------解决方案--------------------
试下用委托看行不行
------解决方案--------------------
这样试试
        public static class NetHelper
        {
            internal sealed class proxy
            {
                private object waitLock = new object();
                private int version;
                private bool isValue;
                private void getNetVersion()
                {
                    version = NetHelper.getNetVersion();
                    Monitor.Enter(waitLock);
                    try
                    {
                        isValue = true;
                        Monitor.Pulse(waitLock);
                    }
                    finally { Monitor.Exit(waitLock); }
                }
                private int wait()
                {
                  &nb