写了一个端口扫描工具,使用异步多线程。
[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次的结果都不同。
这个咋子解决啊,求教各位大牛
|