写了一个端口扫描工具,使用异步多线程。 
 
[C#] 纯文本查看 复制代码 while (url_nowIndex < 65535)
            {
               
                if (IsSuccess)
                {
                    break;
                }
                lock (syncObj)
                {
                    m_Count = url_nowIndex;
                    url_nowIndex += 1;
                }
                int Now_COunt = m_Count;
                label4.Text = "当前探测端口:" + textBox1.Text + ":" + m_Count.ToString();
                if (M_FTP.CheckFtp(textBox1.Text, "", "", "", Now_COunt, 2000))
                    {
                        this.BeginInvoke(updateTxt, Now_COunt.ToString(), "1");
                        IsSuccess = true;
                        
                       
                    }
            } 
 
 
代码如上,如果不加函数判断,单独输出,没有问题,不会重复也不会漏掉,说明多线程锁没问题。 
 
但是加了函数判断输出就不对了。测试5次有3次的结果都不同。 
 
这个咋子解决啊,求教各位大牛 
 
 |